BỘ GIÁO DỤC VÀ ĐÀO TẠO DAI HOC HUE
TRUONG DAI HOC KHOA HOC
HO THI DUNG
TIM HIEU NGU NGHIA CHUONG TRINH DATALOG DANG TUYEN CO TINH CHAT
UU TIEN VA UNG DUNG
LUAN VAN THAC SI KHOA HOC
CONG NGHE THONG TIN
Thira Thién Hué, 2020
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUE TRƯỜNG ĐẠI HỌC KHOA HỌC HÒ THỊ DUNG
TÌM HIẾU NGỮ NGHĨA CHƯƠNG TRÌNH DATALOG DANG TUYEN CO TINH CHAT
UU TIEN VA UNG DUNG
CHUYEN NGANH: KHOA HOC MÁY TÍNH MA SO: 8480101
LUAN VAN THAC Si KHOA HOC DINH HUONG UNG DUNG
NGUOI HUONG DAN KHOA HOC PGS TS TRUONG CONG TUAN
Thừa Thiên Huế, 2020
Trang 3Vậy ta có 8 thể hiện Herbrand của ?:
h =Ø,I;= {a},l› = {b},lị = {c},
Is = {a, b}, Is = {a, c}, 17 = {b, c}, Is = {a, b, c}
Các chương trình nhận được sau phép biến đổi chương trình P đối với các thé
hiện Herbrand là:
Ph={avb«<,c< ad}, Po ={avbe,ce a},
Trang 4LOI CAM ON
Để hoàn thành luận văn này, tôi xin chân thành cảm on Thay gido PGS.TS
Trương Công Tuấn, Khoa Công nghệ thông tin - Đại học Khoa học Huế, đã tận tình
hướng dẫn trong suốt quá trình thực hiện để tài
Xin chân thành cảm ơn sự giúp đỡ về mọi mặt của Ban Giám hiệu, Phòng Đào tạo sau đại học, Khoa Công nghệ thông tin - Trường Đại học Khoa học - Đại
học Huế cùng quý thầy cô đã tham gia giảng dạy trong suốt quá trình học tập Xin chân thành cảm ơn đến lãnh đạo cơ quan, đồng nghiệp, người thân và
bạn bè đã quan tâm, động viên, tạo mọi điều kiện để cho tơi hồn thành Luận
văn này
Bản thân tôi đã cố gắng hết sức trong quá trình thực hiện để tài này nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Kính mong quý thầy cô và các bạn tận tình góp ý, chỉ bảo
Xin chan thanh cam ơn!
Thừa Thiên Huế, ngày 25 tháng 02 năm 2020 Học viên
Hồ Thị Dung
Trang 5theo cấu trúc ngôn ngữ của hệ thống — V và lưu vào một thư mucn ođó u đó thực hi nhch uo dunhcl u Duong dan\dlv.mingw.exe [Cac tity chon] Tén chuong trinh ts ngs d - t t[, ]ch xu hi ne vt ech oh -silent n nth ah th ng -nofacts n nxu thi ki n EDB trong k t xu t -n=k ch unh uk ng ho c all te Trongh th ng DLV, d li d liu tt ki d li t d ng trong ho es d suy lu ki nm i CSDL ED t file ho nh th ng:
dlv.mingw.exe [Các tùy chọn] Tên file CSDL EDB Tên File CSDL IDB 3.2.2 Cài đặt và thực thi một số bài toán
Bài toán 1 tea coffee),
P: tea v coffee —
drink_tea < tea, sleepy drink_coffee <— coffee, sleepy sleepy <—
®: drink_tea < drink_coffee
Trang 6Chương 3 ỨNG DỤNG CỦA CHƯƠNG TRÌNH DATALOG DẠNG TUYẾN
CÓ THỨ TỰ ƯU TIỀN . 2-©22s292122221122512131211121122122212212eee 23
3 I: Thử tục tính tập trả lời ưa thích, sesssszssoeennytigndithdtibdythgtbdit8c83iytaossaytnon 23
Trang 8DANH MỤC CÁC KÝ HIỆU
A Tập các nguyên tố của P ASp Tập các tập trả lời của P
Bp Cơ sở Herbrand của chương trình P PASGœ,ø) Tập các p-tập trả lời của (P,Ø) Up Vii tru Herbrand cua chuong trinh P
Trang 9DANH MỤC HÌNH VẼ
Hình 3.1 Kiến trúc tổng quát của hệ thống DLV 222222 222222122212221221e6
Trang 10MỞ ĐẦU
Trong hơn hai thập kỷ qua, việc nghiên cứu về chương trình Datalog dạng tuyển đã đạt được nhiều thành tựu quan trọng cả về lý thuyết và ứng dụng Lĩnh vực nghiên cứu về chương trình Datalog dạng tuyển đã được nhiều nhà khoa học quan tâm và được áp đụng vào việc biểu diễn và xử lý tri thức trong lĩnh vực trí tuệ
nhân tạo và các lĩnh vực nổi lên khác như quan tri trí thức và tích hợp thông tin
Mặc dù chương trình Datalog dạng tuyển có tính biểu cảm cao nhưng có một số tính chất đơn giản, thường phát sinh trong các ứng dụng ở thế giới thực mà chương trình Datalog dạng tuyên không diễn tả được một cách tự nhiên và cũng có
thể không mã hóa được Đặc biệt là các tính chất đòi hòi việc sử dụng các toán tử số học (như sum, count, min) hoac gitta cac nguyén tố của chương trình có một thứ tự ưu tiên nào đó
Việc có một thứ tự ưu tiên giữa các nguyên tố giúp chúng ta xếp hạng các lựa chọn để giải quyết vấn đề Trong thực tế chương trình Datalog đạng tuyển có thứ tự
ưu tiên phát triển mạnh trong lĩnh vực trí tuệ nhân tạo như các ứng dụng về lập kế hoạch, lý luận xác suất, xử lý tri thức, tích hợp dữ liệu, trả lời truy vấn, xử lý ngơn ngữ, chân đốn,
Luận văn nghiên cứu về øgữ nghĩa chương trình Datalog dạng tuyển có tính chất tru tiên và ứng đụng Những nội dung nghiên cứu của luận văn có ý nghĩa về mặt lý thuyết cũng như ứng dụng trong thực tiễn, giải quyết một số bài toán thuộc
các lĩnh vực khác nhau trong thực tế
Cấu trúc luận văn bao gồm phần mở đầu, ba chương nội dung, phan két luận
và tài liệu tham khảo
Chương 1 trình bày các khái niệm cơ sở về chương trình Datalog dạng tuyển và ngữ nghĩa tập trả lời của lớp chương trình này
Trang 11Chương 3 trình bày một thủ tục để tìm các tập trả lời ưa thích của chương trình Datalog dạng tuyến có thứ tự ưu tiên giữa các nguyên tố, giới thiệu hệ thống
lap trinh logic DLV, cai dat va thuc thi mét số bài toán bằng DLV
Phần kết luận trình bày những kết quả đã đạt được và hướng phát triển của
Trang 12Chuong 1 TONG QUAN VE CHUONG TRINH DATALOG DANG TUYEN
Chương 1 sẽ trình bày các khái niệm cơ sở về chương trình Datalog dạng tuyển và ngữ nghĩa tập trả lời của lớp chương trình này Đây là những kiến thức cơ sở, làm tiền đề cho các nghiên cứu trong hai chương tiếp theo
1.1 MỌT SÓ KHÁI NIỆM CƠ SỞ
Chương trình Datalog dạng tuyển sử dụng các ký hiệu trong bộ ký tự được
xác định như sau:
Định nghĩa 1.1 (Bộ ký tự) Bộ ky fự bao gồm các lớp những ký hiệu sau:
1 Hằng, thường ký hiệu bởi các chữ cái thường, ví dụ a, 4, é, 2 Biến, thường ký hiệu bởi các chữ cải in hoa, ví dụ X, P, Z, ,
3 Ký hiệu vị từ, thường ký hiệu bởi các chữ cái thường, ví dụ 7ø, g, 7, ,
4 Hang vi tu: true, false
5 Ký hiệu kết nối: not (phủ định), v (tuyển), A (hội), (suy ra), © (néu va
chỉ nếu)
6 Ký hiệu lượng từ: V (với mọi), (tồn tại)
7 Dấu ngoặc đơn trái (, dẫu ngoặc đơn phải ), dấu phẩy ,
Khác với bộ ký tự của ngôn ngữ bậc nhất, bộ ký tự của chương trình Datalog không chứa ký hiệu hàm
Mỗi ký hiệu vị từ nhằm biểu diễn mối quan hệ giữa các đối tượng và gắn liền
Trang 13Trê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 và
được định nghĩa hình thức như sau:
Định nghĩa 1.2 (Hạng thức) Cho 41 là bộ ký tự Hạng thức được định nghĩa đệ qui như sau:
()_ Mỗi hằng trong 4 là một hạng thức (ii) Mỗi biến trong 44 là một hạng thức
(iii) Hạng thức chỉ được sinh ra bởi các quy tắc trên
Định nghĩa 1.3 (Nguyên tố, literal) Cho 41 bộ ký tự và 7 là tập các hạng thức trên A Lúc đó:
L Nếu p là ký hiệu vị từ z-ngôi trong 41 và í\, , f„ là các hạng thức thuộc 7 thì pứn, ., fr) được gọi là một nguyên tổ
2 Liferal là một nguyên tố hoặc phủ định của một nguyên tổ Nguyên tố là literal dương và phủ định của nguyên t6 1a literal âm
Nguyên tố/hạng thức không chứa biến được gọi là nguyên tố/hạng thức nền và literal nền là literal được xây dựng từ nguyên tổ nền
Từ tập các hạng thức và các lớp ký hiệu của bộ ký tự sẽ hình thành nên khái niệm công thức logIc (hoặc đơn giản là công thức) và được định nghĩa như sau: Định nghĩa 1.4 (Công thức) Cho 44 bộ ký tự và 7 là tập các hạng thức trên ⁄4 Công
thức được định nghĩa đệ qui như sau:
() Mỗi nguyên tố là một công thức,
(ii) Néu E va F la cdc công thức thì: (# A ), not (E), (E vF).(E © F).(E © F) là các công thức,
Trang 14Ví dụ 1.1 Xem các công thức sau:
daughter(X,Y) — child(X,Y), female(X) spouse(X,Y) < married(X,Y ), female(X) married(X,Y) < married(Y,X) childtha, mai) v married(hung, ha) /emale(ha) male(hung) Trong các công thức, người ta thường chú ý đến công thức đóng, ta có định nghĩa: Định nghĩa 1.5 (Công thức đóng) Công thức đóng là công thức không chứa biến tự do
Ví dụ 1.2 Xét công thức VY 3X (0(Y.P) A q(X)) các biến X, Y là những biến ràng buộc vì vậy đây là công thức dong, trong lúc đó công thức 3X (ø(X,Y)Ag(X)) không phải là công thức đóng, vì Y là biến tự do
Công thức/hạng thức không chứa biến được gọi là công thức/hạng thức nên
Chú ý: Nếu X\, X¿, , Xa là các biến xuất hiện trong công thức # thì 3X13X: 3Xn (F) được ký hiệu là 3 Tương tự VX¡V4¡: VẤXn (F) được ký hiéu la VF Khi xem
xét công thức có dang VF, ta thuong bo qua lượng từ V, lúc đó lượng từ V sẽ được hiểu ngầm định
Trang 15trong do n21,m2k20,a G@=1 ,n) vabG=1, , m) la các nguyên tố, dấu
phẩy trong (1) thay cho ký hiệu của phép hội (A), ai v v ø„ là phần đầu va hi,
„ Є, not Ðz+i, , not Öạ là phần thân của quy tắc
e Nếun=lvàk=m=0 thì (1) còn được gọi là một s kiện (ƒac?)
e_ Một quy tắc với phan đầu rỗng được gọi là ràng buộc tồn vẹn ¢ Quy tic nẻn là quy tắc không chứa biến
Cho z là một quy tắc có đạng (1) Ký hiệu:
H(r) = {ai, a„} là tập các nguyên tố trong phần đầu của quy tắc z
B?0) = {i, , bá} là tập các literal dương xuất hiện trong phan thân của quy tac r B-(r) = {not br, , not bn} 1a tap các literal âm xuất hiện trong phần thân của
quy tic r
BŒ) = B'0) © B 0) là tập các literal trong phần thân của quy tic r Ví dụ 1.4 Xét các quy tắc sau:
rị: mon _hocava) <—
rx, hoc_ngay(X,t1) v hoc_ngay(X,t2) v hoc_ngay(X,ts) < mon_hoc(X) Trong các quy tắc này, java, 1, tf và 7: là các hang, Y la bién, mon_hoc 1a vị từ một ngôi và oc_ ngay là vị từ 2-ngôi, trong đó mon hoc(X) có nghĩa X là môn học, hoc_ngay(Y, Y) có nghĩa môn học X được học vào ngày thứ Y
ri la một sự kiện để chỉ CSDL là một môn học, z2 là một quy tắc Datalog dạng
tuyển và có ý nghĩa là: “Môn học X được học vào một trong ba ngày íi, fh hodc 4” Định nghĩa 1.7 (Chương trình Datalog dạng tuyên) [2] Chương trình Datalog dạng tuyén la mot tap hitu hạn các quy tắc Datalog dạng tuyên
Trang 16Ví dụ 1.5 Xét chương trình Datalog dạng tuyển đương gồm các quy tắc sau đây:
ri: ancestor(X, Y) — parenf(X, Y)
r2: ancestor(X,Y) < parent(X,Z), ancestor(Z,Y)
13: father(X, Y) v mother(X,Y) < parent(X, Y) parent(a,b) —
Quy tắc r¡ có nghia: Néu_X 1a cha/me cua _X thi_X la t6 tién Y
Quy tic r2c6 nghia: Néu_X la cha/me cua Z va Z la t6 tién cia Y thi XY là tổ tién cua Y
Quy tắc ra có nghĩa: Nếu X là cha/mẹ của Y thì Y là cha của Y hoặc X là mẹ
cua Y
Nguyên tố nền parer(a,b) là một sự kiện và có ý nghĩa ø là cha/mẹ của b Định nghĩa 1.8 (Vũ trụ Herbrand/Cơ sở Herbrand) Cho P là một chương trình Datalog dạng tuyên
1 Vũ trụ Herbrand Up của P là tập tất cả các hằng xuất hiện trong chương
trình P
2 Cơ sở Herbrand Bp của P là tập tất cả các nguyên tố nền được xây dựng từ các vị từ xuất hiện trong các quy tắc của P và cac hang trong Up
Trang 17e Cơ sở Herbrand của P là:
Br = {r()), v2), pC), p@), a), 42) s1) sŒ)}
Một quy tắc có chứa biến sẽ đại diện cho một tập các hiện hành nên (ground
instance) cia no, nghia là một tập các quy tắc nên nhận được bằng cách thay thế các biến của quy tắc với các phân tử thuộc vũ trụ Herbrand của chương trình
Định nghĩa 1.9 (Hiện hành nền) /Ở/ện hành nền của một quy tắc z trong chương trình Datalog dang tuyén P là quy tắc nhận được từ z bằng cách thay thế các biến trong z bởi các hằng trong Up Ky hiéu ground(P) dé chi tập tất cả các hiện hành nên của các quy tắc xuất hiện trong P
Ví dụ 1.7 Xét chương trình Datalog đạng tuyên P ở ví dụ 1.6 Lúc đó chương trình grouná(P) nhận được từ P: r{1) — r2)<©— PC) v qd) — nr) s(1) 7{1), not q(1) PO) v q2) <— 12) S(2) — 7{2) not q(2)
Định nghĩa 1.10 (Thể hiện Herbrand) Cho P là một chương trình Datalog dạng tuyển Một /hê hiện Herbrand của P là tap con I cia Bp Literal dong A la ding (trong tng saz) déi voi thé hiện 7 nếu 44 e J (trong tng A ¢ J), literal 4m not A là ding (twong tng sai) đối với ï nếu 4 ¢ I (trong tng A € J)
Vi du 1.8 Xét chvong trinh Datalog dang tuyén P 6 vi du 1.6 Mét sé thể hiện Herbrand của ? là:
ñ = (1), r2), p(1)}
Trang 18Định nghĩa 1.11 Cho P là một chương trình Datalog dạng tuyển, 7 là một thê hiện Herbrand của P và z là quy tắc trong ground(P) Luc dé:
() Đầu của quy tắc z là đứng đối với 7 nếu #1{) ¬ I # Ø Thân của r là đứng đối với 1 nếu tất cả literal trong thân của z là đúng đối với 7 (nghĩa là #*{) c1 và 8Œ) ¬1
= ©) va sai đối với 7 nếu ngược lại
(ii) Quy tae r là đúng đối với 7 nếu đầu của z là đúng đối với 7 hoặc thân của z là sai đối với 1
Định nghĩa 1.12 (Mô hình Herbrand, Mô hình Herbrand cực tiểu) Cho P là một
chương trình Datalog dạng tuyển Một mô hình Herbrand M của P là một thê hiện Herbrand Ä⁄ của P sao cho mọi quy tắc z € ground(P) la dang déi voi M M6 hinh
Herbrand A⁄ của P được gọi là mô hình Herbrand cực tiểu nếu không tổn tại mô hình Herbrand X của P sao cho là tập con thực sự của Ä⁄
Ví dụ 1.9 Xét các thể hiện 7\, 7, 7; của chương trình Datalog đạng tuyển P ở ví dụ 1.7, rõ ràng 7¡ không phải là mô hình Herbrand của P Tuy nhiên J = {r(1), r(2), p(1), (2), s(1)} và 7: = {r(1), r2), p2), q(1) s(2)} là các mô hình Herbrand của P Ví dụ 1.10 Cho P là chương trình Datalog dạng tuyển gồm các quy tắc sau: pea p<b avbe
Khi đó, ta có các mô hình Herbrand cua P la: {a, p}, {b, p}, {a, b, p} va {a, p}, {b,
p} là các mô hình Herbrand cực tiêu của P 1.2.2 Ngữ nghĩa
Trang 19Sự hiện diện của dạng tuyển trong phần đầu của quy tắc đã làm cho chương trình Datalog đạng tuyển khá phức tạp Đã có nhiều nghiên cứu về ngữ nghĩa của chương trình Datalog dạng tuyển Đề xuất đầu tiên trong việc gán ngữ nghĩa cho chương trình Datalog dạng tuyên được thực hiện cho chương trình Daftalog dạng
tuyển dương và được mô tả bởi tập các mô hình cực tiểu của P, ký hiệu là Ä⁄A⁄{P)
Ví dụ 1.11 Xét chương trình Datalog dạng tuyên P gồm các quy tắc sau: avbe cea Chương trình Datalog dạng tuyển P này có 4 mô hình Herbrand là: M = {5}, M2 = {a, c}, Ms = {b,c} My = {a, b,c}
Vii, © M3 cM, va M2 Cc Ma, nhung M, € Mz va M2 € M Do do P co hai mé
hình Herbrand cực tiểu là Ä⁄¡ và AM
Vi du 1.12 Xét chương trình Datalog dạng tuyên P gồm các quy tắc sau: avbe
bea a<cb
Chương trình này có duy nhất một mô hình Herbrand cực tiểu là {4}
Trong trường hợp tổng quát, khi chương trình Dafalog dạng tuyên có chứa ký hiệu phủ định, nhiều nghiên cứu về ngữ nghĩa đã được để xuất và một tiếp cận ngữ nghĩa được chấp nhận rộng rãi hiện nay - ngữ nghĩa tập trả lời được đề xuất bởi Gelfond and Lifschitz [2] Ngữ nghĩa này được xác định bằng phép biến đổi chương trình Datalog dạng tuyển P ban đầu theo một thể hiện 7 cho trước thành
Trang 20chương trình Datalog dạng tuyển dương Pï (gọi là thu hẹp GL), sau đó ngữ nghĩa của P được xem xét trên chương trình PÏ này
Phép biến đổi Gelfond and Lifschitz được định nghĩa như sau:
Định nghĩa 1.13 (Thu hẹp GL) [2] Cho P là một chương trình Datalog dạng tuyển
và 7 là một thể hiện của P 7w hep GL (Gelfond and Lifschitz) cua P theo J, ky
hiệu P7, là chương trình Datalog dạng tuyển dương được xác định như sau: Pl={av vaneh, , bự |
av VaQnehi, , by, not bin, not bn € ground(P)
vab;¢Ivoimoik+1<i<m}
Định nghĩa 1.14 (Tập trả lời) [2] Một thể hiện 7 của chương trình Datalog dạng
tuyển P được gọi là /ập trả lời của P nếu 7 là một mô hình cực tiểu của chương trình Datalog dạng tuyển đương PÙ
Rõ ràng nếu P là chương trình Datalog đạng tuyển dương thì P! đồng nhất với ground(P) Lúc đó đối với chương trình Datalog dạng tuyên dương thì các mô hình cực tiêu và tập trả lời là trùng nhau
Một tập trả lời Š của chương trình Datalog đạng tuyên P là đập frả lời cực tiểu nếu không có tập trả lời Š' nào khác của P mà Š°chứa trọn trong ở
Trang 21Vậy ta có 8 thể hiện Herbrand của ?:
h =Ø,I;= {a},l› = {b},lị = {c},
Is = {a, b}, Is = {a, c}, 17 = {b, c}, Is = {a, b, c}
Các chương trình nhận được sau phép biến đổi chương trình P đối với các thé
hiện Herbrand là:
Ph={avb«<,c< ad}, Po ={avbe,ce a},
Trang 221.3 TIỀU KÉT CHƯƠNG 1
Chương I đã trình bày các khái niệm cơ sở của chương trình Datalog dạng tuyển Ngữ nghĩa tập trả lời của chương trình Datalog dạng tuyển được trình bày chỉ tiết cùng với các ví dụ minh họa Trong chương 2 sẽ trình bày về việc mở rộng chương trình Datalog dạng tuyên bằng cách đưa vào thứ tự ưu tiên giữa các nguyên tố trong các quy tắc của chương trình
Trang 23Chương 2 CHƯƠNG TRÌNH DATALOG DẠNG TUYẾN
CO THU TU UU TIEN
Chương 2 sẽ trình bày cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyển có thứ tự ưu tiên giữa các nguyên tố cùng với ứng dụng của lớp chương trình này đối với vấn đề lập luận
2.1 CÚ PHÁP
Trong phần này sẽ trình bày cú pháp của chương trình Datalog đạng tuyển có đưa vào thứ tự ưu tiên giữa các nguyên tố Trong chương 2, định nghĩa về chương trình Datalog dạng tuyển vẫn như đã nêu ở chương I1, nghĩa là một tập hữu hạn các quy tắc có dạng:
điV Van<— bị, b¿, not be:i, not Đạp, (1) trong đó ø> 1,m>k >0, a (1= I, , n) và b;(7 = 1, , m) là các nguyên tố
Định nghĩa 2.1 (Quan hệ ưu tiên) [3] Cho P là chương trình Datalog dạng tuyển Quan hệ ưu tiên trên tập các nguyên tố 4 của P, ký hiệu <, là một quan hệ trên 4 có tính chất phản xạ và bắc câu
Định nghĩa 2.2 (Uu tiên giữa các nguyên tố) [3] Cho P là chương trình Datalog dạng tuyển Với mọi nguyên tô e và #› thuộc tập 4 các nguyên tô của P, nếu é; < ở; thì ta nói rằng e› có ưu tiên cao hơn eì Ta gọi e¡ < e; là một ru tiên Ta viết
ey < e2 néu ey X ez Vae2 ¥ C4
Với ưu tién e, < ez, luc dé với m6i thé hién a; cia e; va méi thé hién a2 cha
é thi tacd a, X a
Định nghĩa 2.3 (Chương trình Datalog dạng tuyến thứ tự ưu tiên) [3] Một chương trình Datalog dạng tuyển thứ tự ưu tiên giữa các nguyên fố (gọi tắt là chương trình
Datalog dạng tuyển có thứ tự ưu tiên), là một cặp (P, &) trong do P la một chương
trình Datalog dạng tuyển và ® là tập các ưu tiên trên ,A
Trang 24Ví dụ 2.1 Cho chương trình Datalog dạng tuyển có thứ tự ưu tiên (P, ®), trong đó: Chương trình Datalog tuyên P gồm các quy tắc:
pvq< qvre
Tập ưu tiên ® gồm các ưu tiên: pSq.4<r
Định nghĩa 2.4 (Bao đóng của tập ưu tiên) Gọi ® là tập các ưu tiên, bao đóng của
%®, ký hiệu ®”, là một tập các ưu tiên được dẫn xuất từ ® nhờ tính chất phản xạ
hoặc bắc cầu từ các ưu tiên trong #
Vi dụ 2.2 Với tập ưu tiên ® = {p < q,q <7} trong Ví dụ 2.1, ta có tập bao đóng của @ là:
#®' =[<Sq,q<r,p<p,qSq,p ẤT) 2.2 NGỮ NGHĨA
Phần này sẽ trình bày ngữ nghĩa tập trả lời của chương trình Datalog dạng tuyển có thứ tự ưu tiên [3]
Ký hiệu 7; là tập các literal nền của chương trình Datalog dạng tuyển có thứ
tự ưu tiên P Lúc đó, với mọi tập 5, 7€ Lp và L là một literal nén, Le S\TkhiLe
Sval ¢TvanotL ¢ S\TnghialaL ¢ S và L e T
Định nghĩa 2.5 (Quan hệ ưa thích giữa các tập trả lời) [3] Cho (P, &) là một chương trình Datalog dạng tuyển có thứ tự ưu tiên Trên các tập trả lời ⁄1Šp của P và cùng với các ưu tiên trong ®, ta định nghĩa quan hé wa thich E xác định trên 45p
như sau: Gọi Š: và Š› là 2 tập trả lời của P Lúc đó S2 được ra thích hơn Šì theo ®, ký hiệu $% E %;, nếu đối với phần tử 2 nào đó thuộc 8z \ S¡ thì
() Tén tại phan tử e¡ e S¡ \ §› sao cho ớ; < @¿, đi) — Không có phần tử e3 € S; \ S: sao cho eg < @s,
Trang 25(iii) %¡ES%,
dv)_ Nếu $;¡E%; và $; E $Š; thì $; E $ Ta viết $¡ Š; nếu Š%¡ E $; và $; ƒ $4
Theo định nghĩa trên, S; E S¿ nếu Sz\ §¡ có một phần tử › có độ ưu tiên cao
hon phan tử e¡ nào đó trong S¡ \ 8: và S¡ \ S› không có một phần tử e; nào khác có
độ ưu tiên cao hơn han eo
Vi du 2.3 Xét chương trình Datalog dạng tuyển có thứ tự ưu tiên (P, ®) ở ví du 2.1
Luc do, $1 = {g}, S2 = {p, r} la hai tap tra loi cua P va S2 duoc ưa thích hơn 6Š: vì
tg © tp ry
Luu y rang {p, r} £ {q} boi vi ton tai wu tién g < r trong O
Định nghĩa 2.6 (Tập trả lời ưa thích) [3] Cho (P, ®) là một chương trình Datalog
dạng tuyển có thứ tự ưu tiên Lúc đó, tập trả lời ŠS của P được gọi là /áp trả lời ưa
thích (viết tắt là p-tập trả lời) của (P ®) nếu không có tập trả lời Š' của P và 8
S’ Ký hiệu là PAS(,ø là tập các p-tập trả lời của (P, ®)
Các p-tập trả lời là các tập trả lời bao gồm các phần tử có các ưu tiên cao
nhất theo ® Khi một chương trình có nhiều tập trả lời và muốn chọn ra lọc ra các
tập trả lời theo ý muốn của người lập luận thi ta có thể sử dụng một chương trình Datalog đạng tuyển có thứ tự ưu tiên và các p-tập trả lời Cơ chế ưu tiên của chương trình Datalog dạng tuyên có thứ tự ưu tiên sẽ làm giảm thông tin không xác định trong một chương trình Datalog tuyển
Trang 26Chương trình P co 3 tập trả lời là là 5; = {p} , S2 = {g, s} va S3 = {r} trong đó chi co S3 = {r} la p-tap tra loi cua (P, ®)
Vi du 2.5 Xét tinh huéng: Khi bat khéa khoi dong mét chiéc xe hoi (turn-key) va xe hơi không khởi động (¬ sfzr?), điều này có thể do bình dién hong (battery-dead) hoặc thiết bị đánh lửa hỏng (/gniion-damaged) Dựa trên kinh nghiệm, nguyên nhân đo thiết bị đánh lửa hỏng ít xảy ra hơn bình điện hỏng Lúc đó, ta có thể biểu diễn bằng chương trình Datalog dạng tuyển có thứ tự ưu tiên (P;, ®), trong đó:
Pi: battery-dead V igmition-damaged < turn-key, = start turn-key <—
a start —
@: _ ignition-damaged < battery-dead
Ta có p-tập trả lời của (Pì, ®) là S = {turn-key, start, battery-dead}
Ta xét tiếp tình huống: Giả sử sau đó phát hiện ra radio trên xe hoạt động (radio_work) và ràng buộc toàn vẹn nói rằng radio không hoạt động nếu bình điện hỏng như sau:
IC: < battery-dead, radio_work, Xét chương trình:
Đà = PìU {radio_work —} (2 {IC}
Lúc do Pz sé co p-tap tra loi la {turn-key, ¬start, radio work, igmition- damaged}
Như vậy chương trình Datalog dạng tuyển có thứ tự ưu tiên có thể xác định
các tri thức được ưu tiên một cách tự nhiên và có thể lựa chọn các tập trả lời phù
hợp với các tình huống thay đổi Chú ý rằng việc lựa chọn các p-tập trả lời không ảnh hưởng đến bất kỳ tri thức nào Chẳng hạn, xét chương trình P› thu được từ P\ bằng cách thay thế quy tắc tuyển đầu tiên bằng quy tắc:
Trang 27battery-dead v igmition-damaged v cold-morning <— turn-key, — start
trong d6 cold-morning c6 wu tiên hơn hai tuyển còn lại Lúc đó (P›, Ø) có p-tập trả lời là {f#rn-key, ¬sfart, cold-Immorning}
2.3 CÁC TÍNH CHÁT NGỮ NGHĨA
Các p-tập trả lời của chương trình Datalog dạng tuyển có thứ tự ưu tiên mở rộng tập trả lời của chương trình Datalog đạng tuyển
Mệnh đề 2.1 [3] (Quan hệ giữa các tập trả lời và các p-tập trả lời) Cho (P, ®) là
chương trình Datalog dạng tuyển có thứ tự ưu tiên Lúc đó, P4S(,ø G 4S Đặc
biệt, P4S(p,ø= ASp
Như vậy, các tập trả lời của một chương trình được đặc trưng như một
trường hợp đặc biệt của các p-tap trả lời của một chương trình Dafalog dạng tuyển có thứ tự ưu tiên với các ưu tiên là rỗng Rõ ràng, nếu một chương trình P có duy nhất một tập trả lời thì đó cũng là p-tập trả lời duy nhất của (P, ®) đối với mọi &
Mệnh để trên cho thấy khi chúng ta thêm vào các ưu tiên thì sẽ làm giảm số lượng các giải pháp có thể Tuy nhiên, việc giảm này không đơn điệu, tức là, tăng mức độ ưu tiên trong chương trình không phải lúc nào cũng làm giảm số lượng các p-tập trả lời
Mệnh đề 2.2 [3] (Tính không đơn điệu) Cho hai chương trình Datalog dạng tuyển có thứ tự ưu tiên (P, ®;) va (P, $2) Luc d6, ; c $2 khong suy ra PAS(ps„) C
PAS(p.o,)-
2.4 UNG DUNG DOI VOI LAP LUAN PHONG DOAN
Phỏng đoán là đạng suy luận để đưa ra các giải thích cho một quan sát cho trước và được thực hiện bằng lập trình logic phỏng đoán Trước hết ta có một số định nghĩa sau:
Định nghĩa 2.7 (Chương trình Datalog dạng tuyển phỏng đoán) [3] Cho P là một chương trình Datalog và /# là một tập các literal được gọi là đập phỏng đoán Các vị từ trong «4 không xuất hiện trong phần đầu của mọi quy tắc trong P Lúc đó, một
Trang 28chương trình Daftalog dạng tuyển phỏng đoán được biểu diễn như một chương trình Datalog dạng tuyển:
TN =Pu {A vnof Á — sao cho 4 e A}(1)
Tap A được xác định với tập các thể hiện nền trong A va thé hién bat kỳ của một
phan tir trong A déu duoc goi là một phỏng đoán
Định nghĩa 2.8 (Giải thích của quan sát) [3] Cho II là một chương trình Datalog dạng tuyển phỏng đoán và @ là một literal nền biểu diễn một gưan sát
(observation) Luc đó, một tập 44 được gọi là một giải thích (explanafion) của
O trong II nếu có một tập trả lời nhất quán Š trong II sao cho E= Đ ơ 4⁄4 và Ó e ổ Chú ý: E là một giải thích của Ó trong II nếu Š là một tập trả lời nhất quán của II v2 {< not O} sao cho E=SAA
Trong định nghĩa trên, các quy tắc tuyển thêm vào trong (1) có nghĩa là “phỏng đoán A được giả định hay không” Lúc đó, với ràng buộc <— nof Ó, một tập trả lời của ITU {< not Ó} chứa các phỏng đoán tạo thành một giải thích của O Ví dụ 2.6 Cho chương trình II
wet-shoes — wet-grass,
wet-grass <— rained, wel-grass <— sprinkler-on,
rained v not rained <—,
sprinkler-on V not sprinkler-on <—,
trong do rained va sprinkler-on là các phỏng đoán Lúc đó, cho quan sát O = wet-shoes thi chuong trinh II U {<-not O} co ba tap tra 101:
{wet-shoes, wet-grass, rained}, {wet-shoes, wet-grass, sprinkler-on},
{wet-shoes, wet-grass, rained, sprinkler-on}
Trang 29kéo theo {rained}, {sprinkler-on}, {rained, sprinkler-on} 1a cac giải thích có thé của Ở
2.4.1 Phóng đoán cực tiểu
Trong phỏng đoán, việc lựa chọn các giải fhích tốt nhất (best explanations) từ nhiều giải thích là rất quan trọng Trong trường hợp này, giải thích cực ziểu được sử dụng như là giả thuyết đơn giản nhất để giải thích một quan sát Giải thích E là cực tiểu nếu không có giải thích ' E Phỏng đoán cực tiểu được thê hiện trong chương trình Datalog dạng tuyển có tính logic ưu tiên như sau:
Định nghĩa 2.9 (Phỏng đoán cực tiểu) [3] Cho II là một chương trình Datalog dạng tuyển phỏng đoán và O là một quan sát, phỏng đoán cực tiểu được định nghĩa là một chương trình Datalog dạng tuyên có thứ tự ưu tiên (TI,3»⁄4) trong đó:
®ựaA = {A < nof Á: A e d1 }
Trong ®„⁄¿¡, ưu tién A < not A dugc doc 1a "A it có khả năng xảy ra" Điều kiện ưu tiên này dùng để loại bỏ phỏng đoán 41 trong mỗi p-tập trả lời Một tập trả
lời Š được gọi là /Ä-cực tiểu nêu khong co tap tra loi S’ sao cho S’ NA CSO A
Lúc đó ta có các kết quả sau:
Định lý 2.1 [3] Cho (II, ®zz) là một chương trình Datalog dạng tuyển có thứ tự ưu tiên biểu diễn phỏng đoán cực tiêu Lúc đó, quan sát Ó có giải thích cực tiéu E trong II nếu (HH Uf not O}, Pya) c6 mot p-tap tra lời nhất quán Š sao choE =SOA
Vi du 2.7 Trong vi du 2.6, dat
@ya = {sprinkler-on < not sprinkler-on, rained < not rained} Luc do, (I1U {< not O}, Sma) co hai p-tap trả lời là:
M = {wet-shoes, wet-grass, rained},
M2 = {wet-shoes, wet-grass, sprinkler-on}
Trang 30Do đó ta suy ra các giải thích cực tiểu {rained† và {sprinkler-on} tương ứng
VỚI M, va Mo
2.4.2 Phỏng đoán ưu tiên
Mặc đù phỏng đoán cực tiểu làm giảm số lượng các giải thích, nhưng nó không đủ mạnh để chọn giải thích mong muốn Trong thực tế, một chương trình Datalog dạng tuyển phỏng đoán thường có nhiều giải thích cực tiêu Để xác định các ưu tiên giữa các giải thích cực tiêu, chúng ta áp dụng quan hệ ưu tiên < với các phỏng đoán và áp dụng quan hệ E với các giải thích
Định nghĩa 2.10 (Ưu tiên trên các phỏng đoán) [3] Với bất kỳ phỏng đoán 44; và 42 trong A, néu A; < A; chung ta ndi rằng A> c6 wu tién cao hon A; Đặt ® „ là tập
các ưu tiên trên các phong doan Voi hai tap E CA va FCA, EEF được định
nghĩa như trong Định nghĩa 2.8 đối với các ưu tiên trong ® „
Định nghĩa 2.11 (Giải thích cực tiêu ưa thích) [3] Cho II là một chương trình Datalog dạng tuyển phỏng đoán và ® „ là tập các ưu tiên trên các phỏng đoán Cho
quan sát Ó, giải thích cực tiểu E cha O được gọi là giải thích (cực tiểu) ua thích
nếu E E Ƒ kéo theo Ƒ E E (theo ® 4) đối với giải thích cực tiểu F bat ky cia O
Theo định nghĩa, một giải thích cực tiểu được ưa thích nếu nó chứa phỏng
đoán có ưu tiên cao hơn so với các phỏng đoán khác trong mọi giải thích khác Đặc biệt, nếu một chương trình Datalog dạng tuyển phỏng đoán có giải thích cực tiểu duy nhất, thì đó chính là giải thích ưa thích
Định nghĩa 2.12 (Phỏng đoán cực tiêu được ưu tiên) [3] Cho (H, My) 1a mot chương trình Datalog đạng tuyên có thứ tự ưu tiên biểu diễn phỏng đoán cực tiểu Cho ® „ là tập các ưu tiên trên các phỏng đoán, phỏng đoán cực tiểu tu tiên được định nghĩa là một chương trình Datalog dạng tuyển có thứ tự ưu tiên (II, ®pz) trong đó:
Pema = Đưa (2 {not Á¡ S not Áj: (4j< A4) e By}
Trang 31Trong định nghĩa, thêm ưu tién not A; < noí 4; được đọc là "phỏng đoán 44; ít có khả năng xảy ra hơn 44;" Thêm ưu tiên này vào #®x⁄4, mọi tập trả lời Š thỏa mãn
‘not Aj đều được ưa thích Như vậy, giải thích cực tiểu ưa thích được xác định bởi
phỏng đoán cực tiểu ưu tiên
Định lý 2.2 [3| Cho II là một chương trình logie phỏng đốn, ® ¿ là tập các ưu
tiên trên các phỏng đoán, và Ó là một quan sát Lúc do, FE la một giải thích cực
tiểu ưa thích của Ó nếu (II (2 {< not O}, @pua) có tập trả lời nhất quán S sao
choE=Sn A
Vi du 2.8 Trong Ví dụ 2.6, giả sử ta không sử dung vòi phun nước, vì vậy lập luận “not sprinkler-on” thich hop hon "not rained" Tinh huéng duoc thể hiện bằng cách sử đụng phỏng đoán cực tiểu ưu tiên (II, ®p¿) trong đó ®px⁄4 chứa ưu tiên
not rained < not sprinkler-on
cùng với các ưu tiên trong #®xz4 Lúc đó, chương trinh (I] U {< not O}, @pma) có duy nhất p-tập trả lời là {wet-shoes, wet-grass, rained}, do đó giải thích cực tiểu ưa thich la {rained}
2.5 TIEU KET CHUONG 2
Chương 2 đã trình bày các khái niệm cơ sở của chương trình Datalog dang tuyển có thứ tự ưu tiên giữa các nguyên tố Ngữ nghĩa của lớp chương trình này cùng với các ví dụ minh họa được trình bày chỉ tiết Trong chương 3 sẽ trình bày một thủ tục để tính các p-tập trả lời và minh họa ứng dụng của chương trình này thông qua một số bài toán
Trang 32Chuong 3 UNG DUNG CUA CHUONG TRINH DATALOG DANG TUYEN CO THU TU UU TIEN
Chương 3 sẽ trình bày một thủ tục để tìm các tập trả lời ưa thích của chương trình Datalog dạng tuyến có thứ tự ưu tiên giữa các nguyên tố, giới thiệu hệ thống
lap trinh logic DLV, cai đặt và thực thi mot số bài toán bằng hệ thống lập trình
logic DLV
3.1 THU TUC TINH TAP TRA LOI UA THICH
Trong phần này sẽ trình bày một thủ tục để tính tat cả các tập trả lời ưa thích (còn gọi là p-tập trả lời) từ các tập trả lời của chương trình Datalog dạng tuyển có thứ tự ưu tiên giữa các nguyên tố (P, ®) Ý tưởng của thủ tục này là biến đổi chương trình (P,#) và tập trả lời Š của P thành chương trình Datalog tuyển
TỊP ®.,Š] mà các tập trả lời của nó biểu diễn các tập trả lời của P được ưa thích hơn đối với Š Chính xác hơn, nếu chương trình 7[P, ®,Š] là nhất quán, các tập trả lời của P được ưa thích hơn đối với Š có thể nhận được từ tập trả lời của 7P, ®,5]: ngược lại, ta có thể kết luận S là p-tập trả lời của (P, ®)
Đối với thủ tục này, trước hết trong tập các ưu tiên ®, ta sẽ loại bỏ các công
thức có chứa phép phủ định zo mà không làm thay đổi ý nghĩa của chương trình Định nghĩa 3.1 (Loại bỏ phủ định not trong ®) [3] Cho (P, ®) là một chương trình
Datalog dạng tuyển có thứ tự ưu tiên, định nghĩa (P, ®') là chương trình thu được
bằng cách thay thé bat kỳ công thức øof a trong ® bởi ã trong ®° và giới thiệu một quy tắc mới # < not a déi voi P Két qua thu được chương trình P
Trang 33q Vnof q<—
q <notq
°: 4q<q
Luc do, (P’, ©’) co p-tap tra loi 1a {G} tương ứng với p-tập trả lời là Ø của (P, ®) Mệnh dé 3.1 [3] Cho (P, ®) là một chương trình Datalog dạng tuyển có thứ tự ưu
tiên, gọi (P ®`) là chương trình Datalog dang tuyển có thứ tự ưu tiên nhận được từ
(P, ®) theo Định nghĩa 3.1 Lúc đó: Nếu Š là p-tap trả lời của (P, ®) thì có p-tập trả
loi S’ cua (P’, 6”) sao cho S’ Lp =S Nguoc lai, néu S’ la p-tap tra loi cua (P’,
®`) thì có p-tập trả lời Š của (P, ®) sao cho S = 8’ 1 Lp
Từ mệnh để này, không mắt tính tổng quát, ta sẽ xem chương trình Datalog dạng tuyển có thứ tự ưu tiên (P, ®) khơng chứa các công thức có phủ dinh not trong tập ưu tiên ®
Trong thủ tục sẽ trình bày sau, ta sử dụng một số ký hiệu sau: Lp ={L'|Le Tp} L* là tên mới của literal L trong Lp - §* la tap cdc literal trong tap tra loi S đã đổi tên
- C={Li|L L?}, với mỗi literal L e 7p, một hạng thức nền mới 7: được
đưa vào
- Các ký hiệu vị từ mới m và 7; được đưa vào: đối với hạng thức nên c;
(trong tng cho literal c € Lp va literal đổi tên e*), m() có nghĩa e e Š đối với tập trả lời S va m(c) co nghia c € S’ déi voi tap trả lời S’ của T[P.®,S]
Dinh nghĩa 3.2 (Chương trình Datalog tuyển 7[P,®,S]) [4] Gọi (P,Ø) là chương trình Datalog dạng tuyển có thứ tự ưu tiên và Š là một tập trả lời của P Chương
trình Datalog dạng tuyển nhận được từ (P,Ø) và tập trả lời S, ký hiệu 7[P,Ø®,S], được định nghĩa như sau:
Trang 34TỊP,Ø®,S]=POTUỎII trong đó:
eT là tập các quy tắc được xây đựng từ @ va S nhw sau: LL*— đối với mỗi Le Š,
trong đó mỗi L* e Lp là litetal được đổi tên cua literal L e S,
2 <(az,bi) — đối với mỗi ưu tiên ø << b e Ở
trong đó ø, b6 C là các hạng thức nền biểu diễn tương ứng các literal a, b € Tp, 3.mk(L)<—L*— mX(L)<—L đối với mỗi Ƒ, e€ Lop, literal d6i tén cia L là L* € Lp và một hạng thức nén Li e C biểu thị literal L, e II là tập hợp các quy tắc sau: 4 <(xx) — 5 <2) — <3), S02)
6 <(x,y) — <(z,y), not <(y,x)
7 gri (xy) — mi(x), X(%y), m2 (vy), not m2 (x), not mi (y)
§ g72 (y,Z) — may), <(,Z), mi(z), not mi(y), not mz (Zz)
9 attacked (y) — gr› (y,2)
Trang 352 Quy tắc 2 cho phép biêu diễn các quy tắc của P và các ưu tiên trong & trong cùng một chương trình Quy tắc 4 và quy tắc 5 biểu dién tính phản xạ và bắc cầu của < Quy tắc 5 và quy tắc 6 tính bao đóng của quan hệ ưu tiên < và quan hệ ưu tiên nghiêm ngặt < Quy tắc 7 - 10 thứ tự ưu tiên giữa Š và tập trả lời khác của P Như vậy, quy tắc 10 có nghĩa là defeated(x) la dang néu
tồn tại một tập trả lời Š ˆ của P sao cho, đối với phần ti x e Ÿ\Š”, tồn tại một
phân tử y e Š \ Š' có mức ưu tiên cao hơn phần tử x và phần tử z e Š\ Ÿ” nào đỏ không có ưu tiên cao hơn hãn y Quy tắc l1 nói rằng Öe#er là đúng néu defeated(x) là đúng đổi với x e S\S’
Ví dụ 3.2 Cho (P, ®) là chương trình Datalog dạng tuyển có thứ tự ưu tiên giữa các nguyên tố như sau:
Plo py qe Qqvre ở p<Sqdqsr
P có hai tập trả lời là Š¡ = {p, r} và 52 = {4}
Đối với tap tra loi Si, 7[P,®,S] = PUT: UT, voi 1 nhu sau:
Tre pˆ re, SỚ, 4) —, XC4i, n) —, HH(Đ) — p*, mi(qr) — q*, mir) — TỶ, mu(nps) — ~p*, mi(ng:) — —đ”, man) — ~r*, mp1) — p , mqr)— q, mar) —r, m2(npi) — ~ p , mAngi) — ~g , mAnr) — r trong đó: Lp = ẤP, q, r, —P, ¬q, —T}, Lp ={p gd 1 -p’, 7g, tr}, C= {pr, qt, M1, Mpt, NG, NI}
Dinh ly 3.1 [4] (Tính đúng đắn và đầy đủ của thủ tuc) Goi T [P,®,S] 1a chương trình Dafalog đạng tuyên được xây dựng từ chương trình Datalog dạng tuyên có thứ tự ưu tién (P,®) va tap trả lời Š của P Nếu 7T[P.®,Š] nhất quán thì S’ = E 9 Lp la mot tap trả
Trang 36lời khác của P sao cho 9 E Š'° đối với bat ky tap tra loi E cua 7[P,©,S] Nguoc lai, néu có tập tra loi khac S cla P sao cho S E'S’ thi 7[P,®,S] la nhat quan
Định lý 3.2 [4] Gọi 7 [P,Ø,Š] là một chương trình Datalog dạng tuyên được xây dựng từ chương trình Datalog dạng tuyển có thứ tự ưu tiên (P,ở) và tập trả loi S
của P 7[P,đ,S] không nhất quán khi và chỉ khi Š là một p-tập trả lời của (P,Ø)
Ví dụ 3.3 Xét chương trình Datalog đạng tuyển có thứ tự ưu tiên (P, BD) ở Ví
dụ 3.2
Theo Định lý 3.2, ta có thể kết luận rằng 5;= {p, r} là một p-tập trả lời của
(P,Ø) bởi vì 7 [P,Ø,S;] là không nhất quán Ngược lại, đối với Š› = {a} 7 [P,Ø,5:] =PUT2U TT, với [z=Ii\{p*<—, r*€—} Ơ {g*<©—} là trở nên nhất quán và chỉ
có một tập trả lời # sao cho # íì Lp = {p, r}, tức là 5; Do đó, ta có thể nhận được
¡ là p-tập trả lời của (P,®) sao cho 52 E 5; theo Dinh ly 3.1
Trang 37an ` * * * * _ Trong do Lp = {p", g’, r,s", —¬p”, —¬q”, wr’, —¬s”}, C= {Pi, đi, 11,8, Ni, NG, nr, ns} Trong trường hợp này, 7[P, ở, Š;] là nhất quán và chỉ có một câu trả lời là E¡ sao cho E) (\Ep = {g, ¬s} , tức là S2 Tương tự, với Sz, 7[P, Ø®, S2| la nhất quan và chỉ có một câu trả lời là #z sao cho E2 ) Lp = {p, r}, tuc la $7
Như vậy 5; E S2 va S; © S; đều nhận được theo Dinh lý 3.1 Do đó, chúng ta có thể
quyết định rằng cả ổ; và Šz đều là các p-tập trả lời của (P,®)
Phần tiếp theo sẽ trinh bay thi tuc CompPAS dé tinh tat cả các p-tập trả lời chương trình Dafalog dạng tuyển có thứ tự ưu tiên (P,Ø) dựa trên Định lý 3.2 như sau
Procedure: CompPAS (P, ®,A) [4]
Input: Chương trình Datalog dạng tuyên có thứ tự ưu tiên giữa các nguyên tố (P, 2),
Output: Tap A ctia tat cả p-tập trả lời của (P,Ø) 1 Tính tập 4Š của tất cả các tập trả lời của P
2.If 6= ©, retum A:= AS ; otherwise, do:
1 Đặt @ là một tập hợp các định danh (ID) cho các tập tra lời sao cho
|$2| = |AS},
ii Déi voi mai tap tra loi S € AS , gan dinh danh ID cho s no
3 Néu T [P,@,S] la nhat quan déi voi moi tap trả lời S € AS co định danh ID là s, thực hiện từ (a) đến (c) cho mỗi tập trả lời tập E của T [P,®,S]
(a) đặt S°* = “1 Lp,
Trang 38(b) tìm một định danh tập trả lời ID s€ @ déi voi S’ trong dd S’ € AS theo Dinh ly 3.1, (c) dat Ð: = Ð vu {E (s,s’) —} 4 Tính một tập trả lời Ư của chương trình logic sau, Poly {đs(5) — | se @} trong đó ¥ bao gém 5 quy tắc sau: E(x, x) — as(x),
E(x,z) —E( x,y) ,E02),
F(x,y) — E(x,y), not E(,*%),
1orse (x) — E (x,y),
p-as() <— as(x) , not worse(x)
5 Retum A = {S| S ¢ AS voi s = id (S) va p-as(s) € U}
Trang 39là nhận được từ các ưu tiên, Š;EE 5; được tạo bởi 7[P,đ®,Š;] và SE S;, SE $2 được tạo bởi 7[P,®,sS›]
Trong bước 5, A = {{r}} được trả về, vì p-as(s3)e J, p-as(si)¢U , p-as(s2)¢ U dối
với tập trả lời của chương trình:
Po L vu {as(s1) —, đ5(52) —, as(s3) <<}
Vi vay, bang cach sử dụng thủ tục, ta thu được kết quả là chỉ co {7} la p-tap trả lời của (P,Ø)
Ví dụ 3.6 Chúng ta hãy tính p-tập trả lời của chương trình trong Ví dụ 3.4 bằng
cách sử dụng thủ tục trên Giả sử trong bước 2, s;¡ và s2 được gán làm định danh ID
cho các tập trả lời Š; = {p, r} và Sz = {qg,¬ s}
Trong bước 3, thu được là {E(s;,sz)<©—, E(sz,s;) —} theo các ưu tiên
9¡ ES; và S¿ ES; đã được chỉ ra trong Ví dụ 3.4 Do đó, trong bước 4, chúng ta thu
duge p-s(s7) € U và p-as(z) œ U đối với tập câu trả lời Ucủa ƒ US uo {as (81) <—, as (82) <} Vi vay, chúng ta có thể quyết định cả {p, r} và {g, ¬s} là các p-tập trả lời của (P,Ø) bằng cách sử đụng thủ tục trên 3.2 CAI DAT VA THUC THI BANG HE THONG DLV 3.2.1 Giới thiệu về hệ thống DLV
DLV là một hệ thống cơ sở dữ liệu suy diễn dựa trên lập trình logic dạng
tuyển Ngôn ngữ nên tảng của DLV là Datalog dạng tuyên Hệ thống DLV được
xây dựng bởi một nhóm nghiên cứu người Ý và Áo thuộc Đại học Calabria và
trường Đại học Công nghệ Vienna Địa chỉ trang Web của hệ thong DLV la: www.dlvsystem.com
Phiên bản đầu tiên của hệ thống DLV ra đời vào năm 1997 và đã được cải
tiến đáng kể trong những năm vừa qua: tăng khả năng ngôn ngữ, kết hợp các tính năng mới và các kỹ thuật tối ưu có liên quan vào tất cả các module của hệ thống
Trang 40Hiện tại, DLV là một hệ thống biểu diễn tri thức và suy diễn Nhờ có sự nỗ lực lâu
dài về lý thuyết và thực hành mà ngôn ngữ của hệ thống được hỗ trợ bởi hệ thống
thực thi thời gian thực hiệu quả
Hệ thống DLV có thể cài đặt trên các hệ điều hành Unix/Linux hoặc
Windows và trong khuôn khổ luận văn này chỉ trình bày sử dụng hệ thống DLV trên Windows Hình sau đây minh họa kiến trúc tổng quát của hệ thống DLV Model Checker ‡† `
Input Intelligent |-»}| WCH Ly) Model
Program Grounder _| Generator {| Output Relationnal Relationnal Database Database
Hình 3.1 Kiến trúc tổng quát của hệ thống DLV
Khi khởi động, chương trình đầu vào đặc tả bởi người dùng được phân tích
cú pháp và biến đổi vào một cấu trúc dữ liệu nội tại của hệ thống Chương trình P
đầu vào có thê viết đưới dang tập tin văn bản Module IG (Intelligent Grounder) tạo
ra một chương trình nên Ground(P) Sau do, su tinh toan được thực hiện bởi các
module MG (Model Generator) va MC (Model Checker) Module WCH (Weak Constraints Handler) ding dé xt ly các ràng buộc trong chương trình
Sau khi tải về từ Website của DLV, hệ thống DLV là một tập tin nhị phân có
tên đfy.mingw.exe Tập tin chương trình để thực thi trên DLV thường có phần mở
rộng là dl, txt Trước hết, ta thực hiện viết chương trình trong một tập tin văn bản