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

Tìm hiểu ngữ nghĩa chương trình datalog dạng tuyển có tính chất ưu tiên và ứng dụng

48 5 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Nội dung

Trang 1

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 3

Vậ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 4

LOI 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 5

theo 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 6

Chươ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 8

DANH 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 9

DANH 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 10

MỞ ĐẦ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 11

Chươ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 12

Chuong 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 13

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 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 14

Ví 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 15

trong 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 16

Ví 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 17

e 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 19

Sự 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 20

chươ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 21

Vậ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 22

1.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 23

Chươ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 24

Ví 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 26

Chươ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 27

battery-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 28

chươ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 29

ké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 30

Do đó 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 31

Trong đị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 32

Chuong 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 33

q 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 34

TỊ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 35

2 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 36

lờ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 37

an ` * * * * _ 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 39

là 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 40

Hiệ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

Ngày đăng: 11/01/2024, 22:46

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN