BO GIAO DUC VA DAO TAO DAI HOC HUE
TRUONG DAI HOC KHOA HOC
PHAN THI SUONG
TIM HIEU NGU NGHIA CHUONG TRINH
DATALOG DANG TUYEN VA UNG DUNG
DE BIEU DIEN TRI THUC
LUAN VAN THAC SI KHOA HOC
CONG NGHE THONG TIN
Thira Thién Hué, 2020
Trang 2
Chương 3 trình bày việc ứng dụng của chương trình Datalog dang tuyén théng
qua việc biểu diễn một số bài toán kinh điển của lý thuyết đồ thị và cài đặt, thực thi
bằng hệ thống lập trinh logic DLV
Trang 3Ví dụ 1.8 Xét chương trình Datalog P gồm các quy tắc như sau: rị: path(X,Y)<—arc(X,}),
rz: path(X,Z)<—arc(X,Y)apath(Y,Z)
Tap cac ménh dé đơn vị :
I= {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} Các bước lặp dé tính mô hình nhỏ nhất của P:
Io = (Tr)o = ©,
I, = (1p); = Teo) = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)},
J›= (Tp)2 = Teh) = hy {path(1,2), path(2,3), path3.4), path(4,5)}, 1) = (Tp) = Tp(l) = l2 {pafh(1.3)., path(2.4)., path(3.5)}
I= (Tp) = Tes) = BU {path(1,4), path(2,5)}, Is= (Tp)s = Tp) = Lu {path(1,5)},
I= (Lp)s = Ts) = Is
Như vậy điểm bất động nhỏ nhất của 7; chính là 7(7s), đó cũng chính là mô hình nhỏ nhất của P
1.3 TIEU KET CHUONG 1
Chương 1 đã trình bày các khái niệm cơ sở của logic bậc nhất cùng với cú pháp và ngữ nghĩa của chương trình Datalog theo tiếp cận của lý thuyết mô hình Trong chương 2 sẽ trình bày chỉ tiết về cú pháp và ngữ nghĩa của một lớp chương trình mở rộng của chương trình Datalog là chương trình Datalog dạng tuyển
Trang 4© W=(M%, Wn) là một danh sách hữu hạn (có thể rỗng) các thành phần, mỗi thành phần gồm một tập hữu hạn các ràng buộc yếụ Nếu welf;, w'el]F, và ¡<7, thì chúng ta nói rằng w' mạnh hơn hoặc quan trọng hơn w (vì thế, thành phần cuối cing W,, 1a mạnh nhất)
Các tập trả lời của chương trình ? = (P, S, W) la cac tập trả lời của P và
thỏa mãn các ràng buộc Š và J Sau này, để đơn giản, ta sẽ gọi chương trình chương trình Datalog dạng tuyển có chứa các ràng buộc là chương trình Datalog dạng tuyển
Định nghĩa 2.18 Cho chương trình ?= (P, 5, W) và 7 là một thể hiện của P Lúc đó:
Œ)_ Một literal nền dương z là đúng theo 7 nếu e7, a la sai theo 7 nếu e1
Một literal nền âm ¬z là đúng theo Tnếu #1, ¬a là sai theo J nếu ael
(ii) Một quy tắc nền zegrounăP) được thỏa mãn đối với ï nếu đầu của quy tắc đó đúng theo 7 (tức là, các nguyên tố đầu là đúng) hoặc phan thân của nó là sai (tức là, một số literal trong thân là sai) theo J
ii) Một ràng budc nén ce (ground(S) Uground(W)) la thoa man d6i voi 7 nếu ít
Trang 5ES Administrator: C:\Windows\system32\cmd.exe =) ea) D=SDLUSd1ly -filter=reached.inPath dbi_bti hamilton-.dl
IDLY Chuild BEN/Dec 17 2812 gece 4.6.11
XinPathCa,h>„ meachedCh>„ meached€c>„ meachedce2„ a eee aed eee ed LIỀN PPD ee ka ee
Hình 3.3 Kết qua thực thi của Bài toán tìm đường đi Hamilton 3.2.2 Bài toán Người du lịch
Bài toán Người đu lịch là một bài toán tối ưu nổi tiếng, đã được nhiều người
quan tâm nghiên cứụ Bài toán được phát biểu như sau: Một người du lịch muốn đi tham quan ø thành phố 7ì,7›, , T„, gọi C; là chi phí đi từ thành phố 7; đến 7 Xuất phát từ một thành phố nào đó, người đu lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố đi qua đuy nhất 1 lần rồi quay trở lại thành phố xuất phát sao cho tổng chỉ phí là nhỏ nhất Bài toán này có thể chuyển thành bài toán sau đây trong lý thuyết đồ thị:
Xét đồ thị có hướng G = (V,E), với tap dinh V = {1,2, ø}, có trọng số với
trọng số Cụ Bài toán trở thành tìm chu trình Hamilton có độ dài ngắn nhất trong G Bài toán nỗi tiếng này đã có lời giải bằng cách sử dụng phương pháp “nhánh và cận” Trong phần này ta sẽ sử dụng chương trình Datalog đạng tuyển để biểu diễn cho bài toán nàỵ
Việc biểu diễn cho bài toán Người du lịch có thể thực hiện từ việc sửa đổi
chương trình từ bài toán tìm đường đi Hamilton ở trên bằng cách thêm vào mỗi cung trong đỗ thị một trọng số và tìm một chu trình Hamilton với tổng trọng số
nhỏ nhất
Giả sử đồ thị G vẫn được xác định bởi các vị từ verfex, edge va dinh bat dau được xác định bởi vị từ sfz.Trước hết ta sửa đổi chương trinh cho bài toán Tìm
đường đi Hamilton để tính các chu trình Hamilton, bằng cách bỏ đi literal not start(X) tt ràng buộc cuối cùng của chương trình Sau đó, thêm vào phần tối ưu bao gồm một ràng buộc yếu duy nhất:
Trang 63.1.3 Thực thi chương trình trên hệ thống DLV 22- 2222222222222 27 3.2 Biểu diễn, cài đặt và thực thi một số bài toán trên hệ thống DL.V 29
3.2.1 Bài toán Tìm đường đi Hamilfon St tnhrrrrrrerre 29 3.2.2 Bài toán Người du lịch - c2: t1 t1 2111 1t Hy Hà HH Ha Hee 32
3.2.3 Bài tốn Tơ màu đỗ thị 25:2222222222122211221122112211221 221 cee 34
3.2.4 Bai toan Tim clique cựC đạỊ - cc ct nhe 37
3.3 Tiểu kết chương 3 52 22 22222112211121112111211121112122122122221 re 38 KẾT LUẬN 22-222 22222112111211121112111221122122122212221122212122 re 39
TÀI LIỆU THAM KHẢỌ 22522 22222222211222211227112221122212221 2 rẹ 40
Trang 7DANH MUC CAC THUAT NGU
Chuong trinh Datalog
Trang 8DANH MUC CAC HINH VE
Số hiệu hình vẽ Tên hình vẽ Trang
Hình 3.1 Kiến trúc tổng quát của hệ thống DLV 2 Hình 3.2 Đồ thị có hướng G 31
Hình 3.3 Kết quả thực thi của Bài toán tìm đường đi Hamilton 32
Hinh 3.4 Đồ thị G cho bài toán Người đu lịch 33
Hình 3.5 Kết quả thực thi của bài toán Người du lịch 34
Hình 3.6 Đồ thị G của bài toán lập lich thi 35 Hình 3.7 Kết quả thực thi bài toán lập lich thi 37
Hình 3.8 Kết quả thực thi của Bài toán Tìm clique cực đại 38
Trang 9
Bp
Up
Mp
Tp
DANH MUC CAC KY HIEU
Cơ sở Herbrand của chương trình P Vũ trụ Herbrand của chương trình P
Tập tất cả các tập con của cơ sé Herbrand Bp
Mô hình nhỏ nhất của P
Toán tử hệ quả trực tiếp
Trang 10LOI MO DAU
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 dụng vào việc biểu diễn và xử ly 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ư quản trị tri thức và tích hợp thông tin
Chương trình Datalog dạng tuyển thường bao gồm các ràng buộc mạnh và
ràng buộc yếụ Ràng buộc mạnh diễn tả các điều kiện cần phải được thỏa mãn, cho
phép biểu điễn đơn giản các bài toán ra quyết định và tìm kiếm kinh điển nhưng việc biểu diễn các bài toán tối ưu phần nào đó vẫn còn khó khăn Ràng buộc yếu cho phép chúng ta thể hiện sự mong muốn được đưa ra và cùng với ràng buộc mạnh
cung cấp một phương tiện để đặc tả các bài toán tối ưu một cách tự nhiên Với các
ràng buộc này, chương trình Datalog đạng tuyên đã tạo ra ngôn ngữ phù hợp nhất
để biểu diễn một lớp rộng các bài toán biểu diễn dựa trên tri thức, chang han nhu
bài toán lập kế hoạch, các bài toán tối ưu hóa của lý thuyết đồ thị và nhiều dạng suy luận phỏng đoán theo một cách rất tự nhiên và súc tích Các bài toán này có thê
được thực thi trên hệ thống DLV, một hệ thống cơ sở dữ liệu suy diễn
Luận văn này tìm hiểu về ngữ nghĩa chương trình Datalog dạng tuyển và ứng dụng để biểu diễn tri thức Cấu trúc nội dung luận văn gồm phần mở đầu, ba chương nội dung, kết luận và hướng phát triển của luận văn
Chương 1 trình bày một số khái niệm của logic bậc nhất, cú pháp và ngữ nghĩa của chương trình Datalog Đây cũng là những kiến thức cơ bản làm tiền đề để nghiên cứu các chương tiếp theọ
Trang 11Chương 3 trình bày việc ứng dụng của chương trình Datalog dang tuyén théng
qua việc biểu diễn một số bài toán kinh điển của lý thuyết đồ thị và cài đặt, thực thi
bằng hệ thống lập trinh logic DLV
Trang 12Chuong 1
TONG QUAN VE CHUONG TRINH DATALOG
Chương l sẽ trình bày các khái niệm cơ sở về chương trình Datalogcùng với ngữ nghĩa của lớp chương trình này theo tiếp cận lý thuyết mô hình Do chương trình Datalog dựa trên nền tảng của ngôn ngữ logic bậc nhất Vì vậy, chúng ta bắt đầu từ ký pháp của logic bậc nhất Đây là những kiến thức cơ sở làm tiền đề để nghiên cứu trong các chương tiếp theọ
1.1 NGON NGU LOGIC BAC NHAT
Đị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
2
8
Hằng, thường ký hiệu bởi các chữ cái thường, ví dụ a, Ö, é, Biến, thường ký hiệu bởi các chữ cái in hoa, ví dụ X, Y, Z ,
Ký hiệu hàm, thường ký hiệu bởi các chữ cái thường, ví dụ ƒ; ø, Ù, , Ký hiệu vị từ, thường ký hiệu bởi các chữ cái thường, ví dụ 7Ø, g, 7
Hằng vi tir: true, falsẹ
Ký hiệu kết nối: not (phủ định), v (tuyến), ^ (hội), (suy ra), ©»(nếu và chỉ nếu)
Ký hiệu lượng từ: V (với mọi), 3(tồn tại)
Dấu ngoặc đơn trái (, dấu ngoặc đơn phải ), đấu phẩy ,
Mỗi ký hiệu vị tử gắn liền với một số tự nhiên (goi la ngéi) để xác định số thành phan của vị từ Trên cơ sở bộ ký tự đã cho, người ta đưa ra định nghĩa về hạng thức, được xây dựng tử các hằng, biến, hàmvà được định nghĩa như sau:
Định nghĩa 1.2 (Hạng thức) Cho 44 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
Trang 13Định nghĩa 1.3 (Nguyên tố, literal) Cho 44 bộ ký tự và 7 là tập các hạng thức trên 4
Lúc đó:
1 Nếu p là ký hiệu vị tử m-ngôi trong 4 và h, ., f„là các hạng thức thuộc 7 thì P(h, fn) đượ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 tố là 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 1a 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 Ạ Cong
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 và F là các công thức thì: (E AF), not (E), (EVF), (E CF), (EOF) la cac công thức,
(iii) Néu E là công thức và X là một biến thì WX(Ƒ), 3X(E) là các công thức,
(v) Công thức chỉ được sinh ra bởi một số hữu hạn các quy tắc trên
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 Xi, X¿ , Xa là các biến xuất hiện trong công thức # thì
Ä1X:3X: 1Xu(F) được ký hiệu là 3# Tương tự VXIVX: VAn(Œ“) được ký hiệu là VF Khi xem xét công thức có dạng VF, ta thường bỏ qua lượng từ V, lúc đó lượng
từ V sẽ được hiểu ngầm định
Trang 14Vi du 1.2 Xét các công thức sau:
loves(X,Y)<mother(X)a child_of(Y,X) (1) mother(mai)achild_of(hoa,mai) (2)
Trong céng thire (1), nguyén t6 mother(X) dé chi X la mét phu nit, nguyén t6 child_of(ỴX) để chỉ Y là cơn củaY, loves(ỴY) là nguyên tố đê chỉ X thong yéu Ỵ Ý nghĩa của công thức (1) là: mọi người mẹ đều thương yêu con của họ và công thức (2) có ý nghĩa: mai là một người mẹ và hoa là con của maị
Định nghĩa 1.5 (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 CHUONG TRINH DATALOG 1.2.1 Ca phap chuong trinh Datalog
Định nghĩa 1.6 (Quy tắc Datalog) Một quy tắc Dafalog là một công thức có dạng:
D Cq1 Aq»„ (n0) ()
trong đó ?, øŒ = 0, ,m) là các nguyên tố có các đối là hằng hoặc biến Vị từ p được gọi là đầu của quy tắc, g¡Ạ Agulà thân của quy tắc Khi thay các biến trong quy tắc (1) bởi các hằng ta nhận được quy tắc không chứa biến và được gọi là
quy tắc nên
Ngữ nghĩa của quy tắc (1) là với mọi phép thay thế các biến bởi các hằng trong chương trình làm cho thân quy tắc đúng thì đầu quy tắc cũng đúng
Khi ø =0, (1) trở thành pe
va duoc goi la ménh dé don vi (unit clause), ky higu < có thể bỏ qua, ngữ nghĩa
của mệnh đề đơn vị là với mọi phép thay thế các biến bởi các hằng trong chương trình vào nguyên tố ø thì p luôn luôn đúng
Trang 15Trong chuong trinh Datalog, cdc vi tir chi xudt hién trong than cdc quy tic
duoc goi la vi tr EDB(Extensional Database predicate), cac vi tu xuat hién 6 dau quy tắc được gọi là các vị tir JDB(DB- Intensional Database predicate), các vị từ
1DBcó thê xuất hiện trong phần đầu và thân quy tắc
Ngoài các vị từ ZDB và vị từ 7D, các quy tắc của chương trình Datalog có
thể chứa thêm các vị fừ xây dựng trong, đó là vị từ so sánh số học thuộc tập {=,#,<.>,>,<} Nếu Ølà một vị từ xây dựng trong thì ta viét YOY thay cho cách viết (X,Y) Ví dụ 1.3 Xét chương trình Datalog gồm các quy tắc sau đây để mô ta các mối quan hệ “họ hàng” như sau: m: _ siblng(X,ŸY)©Cparen(V,Z)Aparem(ỴZ)AX #Ÿ, r2: cowsin(Y,Y)<paren((Y,X,)AparenK(Y,Y,)Asibhling(Xp,Y,), r3: cousin(X,Y)<parent(X,Xp)Aparent(Y Yp)Acousin(Xp,Yp), rạ related(X,Y)<sibling(X,Y), rs related(X,Y)<related(X,Z)\parent(Y,Z), re: related(X,Y)<related(Z,Y)\parent(X,Z)
Trong ví du nay thi parent la vi tr EDB va parent(C,P) co nghia la P là
cha,me ctia C, cac vi tt sibling, cousin, related là các vị từ IDB
Quy tắc r¡ có nghĩa: "Với mọi X và Y, X la anh em rudt cua Y nếu tổn tại Z là
cha mẹ của X và Y và X, Y không phải cùng một người" tức là : s/2mg(X,Y) là đúng nếu X, Y là những người cùng chung cha mẹ, nhưng loại trừ trrdng hop sibling(a,a) do X#Y trong quy tắc r
Quy tắc z› và r› có nghĩa : cowsin(X.Y) là đúng nếu X, Y có chung tổ tiên và ở
cùng một số thế hệ và ít nhất là cách xa hai thế hệ, tức là không thể anh em ruột
hoặc cùng một ngườị
Trang 16Chú ý: Đối với mỗi vị từ g #-ngôi được đặt tương ứng một quan hệ QO có # thuộc
tính Giá trị của quan hệ @ là một tập các bộ, một bộ của quan hệ @ có È thuộc tính được biểu thị bởi (a1, ,ax), trong do cac a; la hang và q(a›, ar) la dung néu
(az, ,a¢) thude QỌ Quan hé déi voi vi th EDB(trong ứng IDB) goi la quan hé EDB(twong ung IDB) Mét CSDL ngoai dién (hoacCSDL EDB)cua chuong trinh Datalog la tap các bộ của các quan hệ EDB
1.2.2 Ngữ nghĩa chương trình Datalog
Theo quan điểm lý thuyết mô hình, các quy tắc trong chương trình được xem
là công cụ để xác định mô hình Một thể hiện của một tập các vị từ sẽ gán giá trị
chân lý cho mỗi tình huống có thê có của các vị từ Đề là mô hình của một tập các quy tắc, một thể hiện phải làm cho các quy tắc đúng với mọi phép gán trị cho các biến trong mỗi quy tắc được lấy từ miền giá trị đã chọ Với tiếp cận này, ngữ nghĩa của chương trình Datalog P là mô hình nhỏ nhất của P
Định nghĩa 1.7 (Vũ trụ/Cơ sở Herbrand) Cho ? là chương trình Datalog Lúc đó: 1 Vit tru Herbrand Up là tập tất cả các hằng của P
2 Cơ sở Herbrand Bp là tập tất cả các nguyên tố nền của P Mỗi phần tử thuộc
Bp duoc goi la mot su kién (fact)
Vi du 1.4 Xét chương trình Datalog P như sau: q(a,b) <—
q(b,e)
PLY) (XY)
p(X.]) p(X.Z) ^Œ.T)
Vũ trụ Herbrand của ? là p = {a, b, c} và cơ sở Herbrand của ? là:
Br = ty(ạa), p(a,b), p(a,©), p(b,a), pÉ,b) p(b,c), p(c,a), p(c,b), p(e,©),
Trang 17Định nghĩa 1.8 (Thể hiện Herbrand) Một /h hiện Herbrandl của chương trình Datalog P bao gồm:
1 Miền của thể hiện 7 là tập vũ trụ Herbrand Up cua P,
2 Mỗi hằng trong Pđược gán bởi chính nó,
3 Mỗi vị từ pr-ngôi trong 7 được gán bởi một ánh xạ pu UL > {true, false} Ví dụ1.5 Xem chương trình Datalog P gồm các quy tắc: r{a,b)— {b,c)<— PXN XY) WKY) r(X,Z)ApŒ,}) Vũ trụ Herbrand của P : Up = {a,b,c} Cơ sở Herbrand:
B¡= tr(a,b),r(b,©),r(a,),r(b, a), r(c, b), r(c, a), r(a, a), r(b, b),r(e,€),
p(a,b),p(b,c),p(a,©),p(b, a),p(c, 5), p(c, a), p(a, 4), p(B, b), p(c,©), q(a,b),q(b,c), q(4, ©), q(b, a), q(c, b), q(c, 4), q(a, 4), q(b, b),q(€,c)}
Xét thể hiện 7 của P, bao gồm:
- Miễn của thể hiện 7 là tập vũ trụ Herbrand p của P, - Các hằng cuaP laa, b,c,
- Vị từ r được gán bởi ánh xạ: 7; : U; — (true, false) xac dinh boi
V(X,P)eU2, n(X,¥) = truenéu (X,Y) = (a,b) va n(X,¥) = false néu(X,Y) # (a,b)
- Vị từ p được gán bởi ánh xạ: m :Ùz > (true, false) xac dinh boi
Trang 18- Vi tir q dwoc gán bởi ánh xạ: đr :Ùz > (true, false) xac dinh boi
V(X,P) eUz, q(ŒX.P) = true nêu (X,Y) = (b,c) và gi(X.Y) = false néu(X,Y) # (b,c)
Như vậy, đối với mỗi thể hiện Herbrand thì phép gán đối với các hằng là cố định Các thể hiện Herbrand chỉ khác nhau bởi giá trị chân lý của các nguyên tố
nên Vì vậy, từ đây về sau ta đồng nhất một thể hiện Herbrand 7 của một chương trình Datalog P với một tập con của cơ sé Herbrand Bp cua P Lic đó, nếu e1, ta
noi rang A diing(cé gid tri true) trong J va nếu 4e; nhưng 4#], ta nói rang A sai (c6 gia tri false) trong L- Một quy tắc z của chương trình Datalog P được gọi là đúng trong thể hiện 7 nếu thân của r đúng trong 7 thì đầu của z cũng đúng trong 7 hoặc thân của r sai trong J
Trong ví dụ trên, thể hiện 7 có thể đồng nhất với tap J = {r(4,ð), p(a,b), q(b,©)} Định nghĩa 1.9 (Mơ hình Herbrand) Cho P là chương trình Datalog Lúc đó:
1 Một thể hiện Herbrand 7 của P được gọi là mô hình Herbrand của P nếu
mọi quy tắc của P đều đúng trong thê hiện 7
2.Mô hình Herbrand 7 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 J nào khác của P sao cho 7 chứa tron trong J
3 Mô hình Herbrand 7 của P được gọi là mô hình Herbrand nhỏ nhất nêu với
mọi mô hình Herbrand của P ta luôn có 7 chứa trong
Trang 19Xét thể hiện Herbrand M, = {7(1), s(1,2), g(1.2), p(1)} Mi 1a mét mé hinh cha P Cũng vậy, với thé hién Herbrand M2 = {7(1), s(1.2), g(1.2), p(1), p(2)} thi Me cũng là mô hình của P Tuy nhiên, voi thé hién Herbrand M3 = {7(1), s(1,2), q(1.2)} thi M43 khong phải là một mô hình của P
Định lý 1.1 [2] Cho P là chương trình Datalog Gọi (Ä⁄);s; là họ các mô hình ctiaP Lúc đó: Mp= (\M, tel là mô hình của P Định lý này cũng cho ta thấy ÄZp xác định như trên là mô hình nhỏ nhất của chương trình Datalog P Ví dụ 1.7 Cho chương trình Datalog P gồm 2 mệnh đề đơn vị male(adam) <— female(eve)} — trong đó adam va eve là các hằng P có 4 mô hình Herbrand: { male(adam), female(eve) }
{ male(adam), male(eve), female(eve) } { male(adam), female(eve), female(adam) }
{ male(adam), male(eve), female(eve), female(adam) }
Dễ thấy giao các mô hinh nay la { male(adam), female(eve) } 1a mé hinh
Herbrand nhỏ nhất của P
Việc tính mô hình nhỏ nhất A⁄Zpcó thể tính được nhờ vào một toán tử 7p,được
định nghĩa như sau:
Định nghĩa 1.10 [2] (Toán tử hệ quả trực tiếp) Cho P là chương trình Datalog Ánh
xa Tp: 23 _» 9p duoc dinh nghia nhu sau: V6i méi Je 23 5
Trang 207;Œ) = {A €Bp | Äquy tắc nén ACA) AẢ Ạ AAnctia P sao cho {A), ,An}
Anh xa 7b định nghĩa ở trên còn được gọi là foán fử hệ quả trực tiếp của
chương trình Datalog P
Định lý sau đây cho phép ta tinh duoc Mp
Dinh ly 1.2 [2] Cho P la chương trình Datalog Toán tử 7? đơn điệu tăng trên 2?:
theo quan hệ bao hàm (C) và có điểm bat động nhỏ nhất, nghĩa là ton tai duy nhat
tap Me 27” sao cho T?(M) = M Hơn nữa, AM chính là mô hình nhỏ nhất của chương trình Datalog P
Mệnh đề 1.1 Cho P là chương trình Datalog Mô hình nhỏ nhất của P là giới hạn của dãy (7?p)„, n eN, trong đó (Tp)o = Ø, (T?)+~I= Tp((T?)))
Từ mệnh đề này ta có thuật toán tìm mô hình nhỏ nhất của P như sau:
Thuật toán 1.1
Vào: Chương trình Datalog P và DB là CSDL EDB đã chọ Ra: Mô hình nhỏ nhất của P
Trang 21Ví dụ 1.8 Xét chương trình Datalog P gồm các quy tắc như sau: rị: path(X,Y)<—arc(X,}),
rz: path(X,Z)<—arc(X,Y)apath(Y,Z)
Tap cac ménh dé đơn vị :
I= {arc(1,2), arc(2,3), arc(3,4), arc(4,5)} Các bước lặp dé tính mô hình nhỏ nhất của P:
Io = (Tr)o = ©,
I, = (1p); = Teo) = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)},
J›= (Tp)2 = Teh) = hy {path(1,2), path(2,3), path3.4), path(4,5)}, 1) = (Tp) = Tp(l) = l2 {pafh(1.3)., path(2.4)., path(3.5)}
I= (Tp) = Tes) = BU {path(1,4), path(2,5)}, Is= (Tp)s = Tp) = Lu {path(1,5)},
I= (Lp)s = Ts) = Is
Như vậy điểm bất động nhỏ nhất của 7; chính là 7(7s), đó cũng chính là mô hình nhỏ nhất của P
1.3 TIEU KET CHUONG 1
Chương 1 đã trình bày các khái niệm cơ sở của logic bậc nhất cùng với cú pháp và ngữ nghĩa của chương trình Datalog theo tiếp cận của lý thuyết mô hình Trong chương 2 sẽ trình bày chỉ tiết về cú pháp và ngữ nghĩa của một lớp chương trình mở rộng của chương trình Datalog là chương trình Datalog dạng tuyển
Trang 22Chuong 2
CHU ONG TRINH DATALOG DANG TUYEN
Chương 2 trình bày về cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyển và hai dạng ràng buộc thường được bồ sung vào lớp chương trình này là ràng buộc mạnh và ràng buộc yếu nhằm tăng khả năng biểu điễn của chương trình Datalog dạng tuyển
2.1 CÚ PHÁP CHƯƠNG TRÌNH DATALOG DẠNG TUYỂN
Chương trình Datalog dạng tuyển là sự mở rộng của chương trình Datalog, cho phép các quy tắc có chứa phép tuyển ở phần đầu và thân quy tắc có thể chứa ký
hiệu phủ định
Định nghĩa 2.1 (Quy tắc Datalog dạng tuyên) Một quy fắc Dafalog dạng tuyển r là công thức có dạng:
av Van<—-hy, .,b%, not beri, not bu(1)
trong dé n>1, m> 0, ăi = 1, , n)va bj = 1, ., m) la cdc nguyén 16, dấu phây trong (1) thay cho ký hiệu của phép hội (A).Tuyển aiv va„ là phần đầu và hội i, ., by, not best, ., not ö„ là phần thân của quy tắc
Ta giả thiết quy tắc z là an toàn, nghĩa là mỗi biến xuất hiện trong r cũng phải
xuất hiện ở một trong các literal dương bi, .,bx
Nếu ø = I và k= m = 0 thì (1) con được gọi là một s kiện (ƒac?)
Định nghĩa 2.2 (Chương trình Datalog dạng tuyển) Chương trình Dafalog dạng tuyén la mét tap hitu hạn các quy tắc Datalog dạng tuyên
Ví dụ 2.1 Xem chương trình Datalog dạng tuyên ? gồm các quy tắc sau: person(a) person(b) parenfa,b)
ancestor(X,Y) <-parent(X,Y)
ancestor(X,Y) <-parent(X,Z),ancestor(Z, Y)
Trang 23nonAncestor(X, Y) <person(X), person(Y), not ancestor(X, Y)
/ather(X,Y) vmother(X,Y) <parent(X, Y)
Dinh nghia 2.3 (Vii tru Herbrand/Co sé Herbrand) Cho P la mét chuong trinh Datalog dang tuyén
1 Vit tru Herbrand cua P, ky hiéu Up, là tập tất cả các hằng của P
2 Cơ sở Herbrand cia P, ky hiéu Bp, la tap tất cả các nguyên tố nền được xây dựng từ các ký hiệu vị từ trong P có đối làcác hằng từ vũ trụ Herbrand p của P Ví dụ 2.2 Xét chương trình Datalog dạng tuyển P trong Ví dụ 2.1
Vii tru Herbrand cua P la:
Up = {a, b}
Cơ sở Herbrand của ? là :
Br= { person(a), person(b), parent(a,a), parent(a,b), parent(b, a), parent(b,b), ancestor(a,a), ancestor(a,b), ancestor(b, a),
ancestor(b, b), nonAncestor(a, a), nonAncestor(a, b), nonAncestor(b, a), nonAncestor(b, b), father(a, a),
Jather(a,b), father(b,a), father(b,b), mother(a,a), mother(a,b), mother(b,a), mother(b, b)}
Dinh nghia 2.4 (Thé hién Herbrand) Cho P là một chương trình Datalog dạng
tuyén Mét thé hién Herbrand (hoặc đơn giản là thể hiện) của P là tập con 7 của Bp
Định nghĩa 2.5 (Hiện hành nền) /#ện hành nền của một quy tắc r trong chương trinh Datalog dang tuyén P là quy tắc nhận được bằng cách thay thế các biến trong r béi cdc hang trong Up
Ta sit dung 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
Định nghĩa 2.6 Cho P là một chương trình Datalog dạng tuyển và 7 là một thể hiện Herbrand của P Ta nói rằng literal dương nền 4 là đứng (tương ứng sđ?) trong 7 nếu
Trang 24A el (twong tng A ¢J), literal Am nén 44 1a ding (trong tng sai) trong Inéu A ¢I (tương ứng 4 € J)
Định nghĩa 2.7 Cho P là một chương trình Datalog đạng tuyển và 7 là một thể hiện Herbrand của P Mét quy tac reGround(P) là ding trong I nếu ít nhất một nguyên tố thuộc 77) là đúng trong 7 hoặc ít nhất một literal thuộc 8Œ) là sai trong 7
Định nghĩa 2.8 (Mô hình Herbrand) Cho P là một chương trình Datalog dạng tuyển
và 7 là một thể hiện Herbrand của P 7 được gọi là mô hình Herbrand (hoặc đơn giản
là mô hình) của P nếu mọi quy tắc re GrounăP) là đúng trong 1
Ví dụ 2.3 Xét chương trình P tt Vi du 2.1 Co sé Herbrand Bp cé 22 phan tt, vì vậy tập hợp tat cả các thé hiện của P gồm 22? phần tử Ta xét một số thể hiện của P:
e J; ={person(a), person(b), paremf(a,b)} không phải là mô hình của P vì
quy tắc:
ancestor(a,b)<parent(a, b)
không đúng trong 7¡ (đầu quy tắc là sai trong 7\, trong khi thân quy tắc là đúng trong 11)
e I, = {person(a), person(b), parent(a,b), ancestor (a,b) cũng không phải là mô hình của P vì quy tắc:
nonAncestor(a, a) <person(a), person(a), not ancestor(a, a)
không đúng trong 7z(đầu quy tắc là sai trong 7z, trong khi thân quy tắc là đúng trong J2)
e I3= {person(a), person(b), parent(a,b), ancestor (a,b), nonAncestor(a,a), nonAncestor(b,a), nonAncestor (b,b)} cũng không phải là mô hình của P, thực vậy, quy tắc:
/ather(a,b) v mother(a,b) —parenf(a,b)
không đúng trong 7; vì parenf(a,b) là đúng trong 1:, nhưng cả hai sự kiện ƒœfher(a,b) va mother(a,b) la sai trong J3
e I, = {person(a), person(b), parent(a,b), ancestor (a,b), nonAncestor(a,a), nonAncestor(b,a), nonAncestor (b,b), father(a,b)} 1a một mô hình của P
Trang 25Is = {person(a), person(b), parent(a,b), ancestor (a,b), nonAncestor(a,a), nonAncestor(b,a), nonAncestor (b,b), mofher{(a,b)} là một mô hình cua P
Định nghĩa 2.9 (Mô hình cực tiêu) Cho P là một chương trình Dafalog dạng tuyển
Mô hình AM của P được gọi là mô hình cực tiểu nếu không tổn tại mô hình N nao khác của ? sao cho MCÀ
2.2 NGỮ NGHĨA CHƯƠNG TRÌNH DATALOG DẠNG TUYỂN
Phần này trình bày ngữ nghĩa của chương trình Datalog dạng tuyển Các chương trình Dafalog dạng tuyển được sử dụng một cách rộng rãi như là một công cụ để biểu diễn tri thức và một trong những điểm mạnh của chương trình Datalog dạng tuyên là khả năng mô hình hóa tự nhiên các tri thức không đầy đủ
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 dạ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, trong phần này, trước hết ta sẽ xét một lớp chương trình Datalog dạng tuyển đơn giản, trong đó các quy tắc đều không chứa ký hiệu phủ định, ta gọi là chương trình Datalog dạng tuyển dương
2.2.1 Ngữ nghĩa chương trình Datalog dạng tuyển dương
Định nghĩa 2.10 (Chương trình Datalog dạng tuyển dương) Một chương trình Datalog dạng tuyển đương là tập hữu hạn các quy tắc có dạng:
ay Vane—by, .,bn(1)
trong do n2=1, m= 0, adi = 1,, , n)va BG = 1, ., m) la cac nguyén tố,
Định nghĩa 2.11 (Ngữ nghĩa chương trình Datalog dạng tuyên dương) Ngữ nghĩa của chương trình Datalog dạng tuyển đương P là tập các mô hình cực tiêu của P Ví dụ 2.4 Xét chương trình Daftalog đạng tuyển dương P gồm các quy tắc sau :
avbe
c<a
Trang 26Chvong trinh Datalog dang tuyển P này có 4 mô hình là:
M = {5},
Mp = {a,c}, Mg = {b,c}, My = {a, b,c}
Vi MicM3cM, va M2 CMa nhung ME M2 va M2¢ M Do đó P có hai mô hình ewe tiéu la Mi va Mọ Vay ngit nghia cia P la tap {Mi, Mo}
2.2.2 Ngữ nghĩa chương trình Datalog dạng tuyển
Phần này trình bày một tiếp cận ngữ nghĩa của chương trình Datalog dạng
tuyến đã được thừa nhận rộng rãi, được để xuất bởi Gelfond and Lifschitz [3] gọi là
ngữ nghĩa tập trả lờị Cơ sở của tiếp cận ngữ nghĩa này được xác định bằng phép biến đổi chương trình Dafalog dạng tuyển P ban đầu theo một thê hiện 7 cho trước thành chương trình Datalog dạng tuyển dương, ký hiệu là P chương trình này không chứa phép phủ định trong thân các quy tắc Ta có các định nghĩa hình thức sau:
Định nghĩa 2.12 [3] Cho P 1a mét chvong trinh Datalog dang tuyén va J 1a mét thé
hiện của P P! là chương trình nhận duoc tt ground(P) sau khi thực hiện các phép
biến đổi:
() Loại bỏ tất cả các quy tic re Ground(P) cé literal 4m not B trong thân của
no v6i Bel, va
(ii) Loai b6 cac literal âm trong thân của các quy tắc còn lạị
Như vậy, với phép biến đổi này thì với thé hiện bất kỳ 7 cho trước, các quy tắc
có chứa các literal âm là sai trong thể hiện 7 sẽ bị loại bỏ Tất cả các literal âm còn
lại trong thân các quy tắc còn lại cũng được bỏ đị Từ đó chương trình P thu được sau phép biến đối này sẽ không chứa phủ định nên nó là chương trình Datalog dạng tuyển đương
Trang 27Định nghĩa 2.13 [3] (Tập trả loi) Mot thé hién J cua chuong trinh Datalog dang
tuyén P được gọi là tap tra Idi cha 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 dương P',
Định nghĩa 2.14 [3] (Ngữ nghĩa của chương trình Datalog dạng tuyến) Wgữ nghĩa của chương trình Dafalog dạng tuyển P được xác định bởi tập các tập trả lời của P, ký hiệu 4NS(P) Ví dụ 2.5 Cho chương trình Datalog dạng tuyển P như sau: avb c b < nota,notc ave <— notb
Xét thể hiện 7 = {b} Luc do: P’ = { avbec, be}
Dé dang kiểm tra 7 là một mô hình cực tiểu của PÍ, do đó, 7 là một tập trả
lời của P
Ví dụ 2.6 Xét chương trình P từ ví dụ 2.1 và các thể hiện sau:
1, = {person(a), person(b), parent(a,b)} U {ancestor(a, b), nonAncestor(a, a), nonAncestor(b, a), nonAncestor(b, b)};
lạ =hQfƒfather(a, b)}: 1l = l›\QJ1{mother(a, b)}:
lạ =h5O{ather(a, b), mother(a, b)}
1ì không phải tập trả lời của P vì quy tắc sau không đúng trong P 4, Jather(a, b) v mother(a, b) —paren((a, b)
Mặt khác, 7z là mô hình cực tiểu của P? nén 1› là tập trả lời của P 7: là mô
hình cực tiểu của P° nên cũng là tập trả lời của P.Thể hiện 7; không phải là tập
Trang 28trả lời của P vì nó không phải là mô hình cực tiểu của P™ Co thể kiểm tra là
ASP(Œ)= {, h}
2.3.RÀNG BUỘC MẠNH, RÀNG BUỘỌC YEU
Phần này trình bày về 2 dạng ràng buộc thường được bé sung vao chuong
trình Datalog đạng tuyển nhằm tăng tính hiệu quả trong việc biểu diễn tri thức của lớp chương trình nàỵ Trước hết ta xem xét khái niệm ràng buộc mạnh
2.3.1 Ràng buộc mạnh
Trong việc biểu điễn tri thức bằng chương trình Datalog dạng tuyển, ta thường gặp những điều kiện bắt buộc phải thỏa mãn, chúng được gọi là các ràng
buộc mạnh Chẳng hạn, đối với bài tốn tơ màu trong một dé thị vô hướng, yêu cầu hai đỉnh liền kể của đồ thị không được tô cùng một màu, đây là ràng buộc bắt buộc — nó được xem là ràng buộc mạnh (hay còn gọi là ràng buộc toàn vẹn) Định nghĩa hình thức của ràng buộc mạnh như sau:
Định nghĩa 2.15 (Ràng buộc mạnh) Một ràng buộc mạnh là công thức có dạng:
false HLẠ ALK (k= 1) (1)
trong do mỗi ¿ (i= 1, ,4) la literal Rang budc manh (1) có thể viết gọn:
K“—L\ Nw ALK
Y nghĩa của ràng buộc mạnh (1) là các literal 1; không thể đồng thời nhận giá
trị đúng
Ví dụ 2.7 Trong một đỗ thị có hướng, cạnh được biểu diễn bởi vị từ 2-ngôi eđge, việc gán đỉnh của đỗ thị bởi một màu cho trước được biểu diễn bởi vị từ 2-ngôi colored Lúc đó, ràng buộc mạnh sau đây nhằm thực hiện yêu cầu là hai đỉnh liền kể
của đồ thị không được phép gán cùng một màu:
<edge(X, Y), colored(X,C), colored(Y, C)
Trang 292.3.2 Ràng buộc yếu
Trong thực tế, ngoài ràng buộc mạnh là điều kiện bắt buộc, còn có những điều
kiện mà nên thỏa mãn và không phải là yêu cầu bắt buộc, còn gọi là ràng buộc yếụ Ràng buộc yếu cho phép diễn tả điều kiện nên được thỏa mãn nhưng không cần thiết phải thỏa mãn hay nói cách khác nó cho phép ta diễn tả điều mong muốn, chăng hạn trong việc phân lịch thi các học phần vào các khoảng thời gian, cố gắng đề không phân hai học phần thi cùng một khoảng thời gian nếu các học phần này có sinh viên học chung
Ngoài ra, các ràng buộc yếu còn được phân lớp (hay mức) ưu tiên và được gán trọng số khác nhau theo mức độ quan trọng của nó Trên quan điểm cú pháp, một ràng buộc yếu là gần giống như một ràng buộc mạnh, ở đó phép kéo theo « được thay thế bởi ©.Định nghĩa hình thức của ràng buộc yếu như sau:
Định nghĩa 2.16 (Ràng buộc yếu) Một ràng buộc yếu là công thức có dạng: “©CCLIẬ Aly[w:ll (2)
trong đó #> I1, moi L; (i = 1, nla literal, w va / 1a cac hang nguyên dương, / được
xem là mức ưu tiên và 1w là trọng số trong mức ưu tiên đó, w và 7 có thể được bỏ qua
và lúc đó được gán gia tri mac dinh la 1
Trong định nghĩa trên, ràng buộc yếu trong một lớp / nào đó sẽ quan trọng hơn tất cả các ràng buộc yếu trong các lớp thấp hơn 7 và trong mỗi lớp các ràng buộc yếu có trọng số càng lớn thì càng quan trọng hơn
Vi dụ 2.8 Xét bài toán lập lịch thị cho các học phần vào cuối học kỳ của một Khoa tại một trường đại học Chúng ta giả thiết rằng các học phần là cho trước và được
biểu điễn bởi vị từ I-ngôi boc phan Ngoài ra lịch thi phải thỏa mãn điều kiện
không có hai học phần nào được ấn định cùng thời gian thi nếu có ít nhất một sinh viên cùng học cả hai học phần đó Những cặp các học phần có ít nhất một sinh viên học chung là cho trước và được biểu diễn bởi vị từ 2-ngôi khong tuong thích Giả sử ta muốn bố trí lịch thi vào ba thoi diém fy, ft; va tz Lúc đó ta có thể bằng quy tắc và ràng buộc mạnh sau đây:
Trang 30bo_tri(X, tr) vbo_tri(X, tz) vbo_tri(X, ts) <-hoc_phan(X) (r)
<bo_tri(X, S) Abo_tri(X,S) akhong_tuong_thich(X,Y) (s) Quy tắc z biểu diễn các học phần được ấn định thời gian thi vào một trong ba
thời điểm í, ứ; hoặc /zvà ràng buộc mạnh s thể hiện không có hai học phần có sinh
viên học chung bố trí thi trong cùng một cùng khoảng thời gian
Nói chung, sự hiện diện của các ràng buộc mạnh làm thay đổi ngữ nghĩa của
một chương trình bằng cách loại bỏ tất cả các mô hình không thỏa mãn chúng Rõ ràng, có thể xảy ra trường hợp mà không có mô hình nào thỏa mãn tất cả
các ràng buộc mạnh Chẳng hạn, trong một trường hợp cụ thể của bài toán nêu trên,
có thể là không có cách nào đê phân lịch thi cho các học phần vào khoảng thời gian mà không có một số chồng chéo giữa lịch thi của các học phần không tương thích Trong trường hợp này, sẽ không có bất kỳ giải pháp nào được chấp nhận Lúc đó, chúng ta cần dùng đến các ràng buộc yếu, được chỉ ra như sau:
<bo_tri(X,S), bo_tri(Y,S), khong_tuong_thich(X,Y)
Ý nghĩa của ràng buộc yếu này là: Tốt nhất không bố trí lịch thi của các học phần X và Y vào cùng một thời gian nếu chúng không tương thích
2.4, BIEU DIEN TRI THUC BANG CHƯƠNG TRÌNH DATALOG DẠNG TUYỂN
Với các ràng buộc mạnh và yếu, ta có thể bổ sung vào chương trinh Datalog dạng tuyển, gọi là chương trình Datalog dạng tuyên có chứa ràng buộc Nhờ đó có thé sử dụng lợi thế này để biểu diễn tri thức Ta có định nghĩa sau:
Định nghĩa 2.17 (Chương trình Datalog dạng tuyển có chứa các ràng buộc)
Một chương trình Datalog dạng tyễn có chứa các ràng buộc là một bộ ba
P=(,S, W), trong do:
e Pla mét chvong trinh Datalog dang tuyén
e© Š là một tập hữu hạn (có thể rỗng) các ràng buộc mạnh
Trang 31© W=(M%, Wn) là một danh sách hữu hạn (có thể rỗng) các thành phần, mỗi thành phần gồm một tập hữu hạn các ràng buộc yếụ Nếu welf;, w'el]F, và ¡<7, thì chúng ta nói rằng w' mạnh hơn hoặc quan trọng hơn w (vì thế, thành phần cuối cing W,, 1a mạnh nhất)
Các tập trả lời của chương trình ? = (P, S, W) la cac tập trả lời của P và
thỏa mãn các ràng buộc Š và J Sau này, để đơn giản, ta sẽ gọi chương trình chương trình Datalog dạng tuyển có chứa các ràng buộc là chương trình Datalog dạng tuyển
Định nghĩa 2.18 Cho chương trình ?= (P, 5, W) và 7 là một thể hiện của P Lúc đó:
Œ)_ Một literal nền dương z là đúng theo 7 nếu e7, a la sai theo 7 nếu e1
Một literal nền âm ¬z là đúng theo Tnếu #1, ¬a là sai theo J nếu ael
(ii) Một quy tắc nền zegrounăP) được thỏa mãn đối với ï nếu đầu của quy tắc đó đúng theo 7 (tức là, các nguyên tố đầu là đúng) hoặc phan thân của nó là sai (tức là, một số literal trong thân là sai) theo J
ii) Một ràng budc nén ce (ground(S) Uground(W)) la thoa man d6i voi 7 nếu ít
Trang 32Ở đây, trọng số và lớp ưu tiên được bỏ qua, giá trị được gán ngầm định là 1 Chương trình này chỉ có một tập trả lời là {a}
Chú ý rằng các tập trả lời của chương trình : avb
c<b
la {a} va {b, c} Sự xuất hiện của các ràng buộc yếu đã loại bỏ {, c}vì nó mâu thuẫn với hai ràng buộc yếu (trong khi đó {a}chỉ mâu thuẫn một ràng buộc yếu)
Ta minh họa việc biểu diễn tri thức bằng chương trình Datalog dạng tuyển thông qua một số ví dụ sau:
Ví dụ 2.11 Xem chương trình 7 = (P, Š, W) đã thảo luận trong Ví dụ 2.1, chỉ có
ràng buộc mạnh và không có ràng buộc yếu:
bo_tri(X, ts1) vbo_tri(X, ts2) vbo_tri(X, ts3) <-hoc_phan(X) (1) <bo_tri(X, S), bo_tri(Y, S), khong_tuong_thich(X, Y) (s1) Ở đây, P = {17}, S = {s)} va W= Ọ Theo ngữ nghĩa tập trả lời của P, P có số tập trả lời bằng với các khả năng gán tất cả ø học phần tới 3 khoảng thời gian (chính là 3")
Các tập trả lời của 7? là các tập trả lời của ? thỏa mãn các ràng buộc mạnh s1, nghĩa là
không có hai học phần không tương thích được xếp lịch thi cùng khoảng thời gian
Ví dụ 2.12 Xem chương trình 7 = (P, Š, W) đã thảo luận trong Ví dụ 2.1, chỉ có
ràng buộc yếu và không có ràng buộc mạnh:
bo_tri(X, ts1) vbo_tri(X, ts2) vbo_tri(X, ts3) <-hoc_phan(X) (Œ) <bo_tri(X, 8), bo_tri(Y, S), khong_tuong_thich(X, Y) (1)
Trang 33O day, P = {ni}, S= @ va W= ({})
Các tập trả lời của 7 là các tập trả lời của P mà làm cực tiểu số các trường hợp vi phạm (các học phần không tương thích được phân công thi cùng khoảng thời gian) w; Trong trường hợp nàỵ hai chương trình ??: và 7 có chính xác các tập trả lời như nhaụ
Ví dụ 2.13 Xem chương trinh P3 = (P, Š, ƒ), trong đó có 2 ràng buộc yếu và không
có ràng buộc mạnh:
ri: bo_tri(X, ts1) vbo_tri(X, ts2) vbo_tri(X, ts3) <-hoc_phan(X) w2: =bo_tri(X, 8), bo_tri(Y, S), khong_tuong_thich_manh(X,Y) [1:2] w3: =bo_tri(X, S), bo_tri(Y, S), khong_tuong_thich_yeu(X,Y) [1:1]
Trong 2 ràng buộc yếu, ràng buộc yếu w› được định nghĩa “mạnh hơn” w; nên ta xếp w› vào lớp 2 và xếp wavào lớp 1 Các tập trả lời của 72 là các tập trả lời của P, trước hết, cực tiêu hóa số các chồng chéo của các học phần không tương thích mạnh (cực tiêu số lượng các trường hợp vi phạm của w2) và trong số những tập đó, chọn ra các các tập làm cực tiểu các chồng chéo giữa các học phần không tương thích yếu (cực tiêu các trường hợp vi phạm của w2)
Ta xét tiếp một ví dụ khác:
Ví dụ 2.14 (Bài toán lập đội dự án) Xét bài toán bố trí các nhân viên của một công ty vào hai đội dự án khác nhau ø: và p› Chúng ta mong muốn:
¡ Các thành viên trong mỗi đội thì có kỹ năng khác nhaụ
iị Hai người đã kết hôn với nhau thì không nên thuộc cùng một độị
iị Các thành viên của cùng một đội thì đã biết nhau trước đó
Trong đó, hai yêu cầu sau mạnh hơn hay quan trọng hơn yêu cầu đầu tiên Giả sử thông tin về nhân viên, kỹ năng, quen biết nhau và kết hôn được xác định thông
qua một sô sự kiện đâu vàọ
Trang 34Bài toán này có thể được biểu diễn bằng chương trình Datalog dạng tuyên P chỉ gồm 1 quy tắc:
m: thanh vien(X, pì) vthanh vien(X, p›) nhan vien(Y) và 3 ràng buộc yếu:
wị : ©hanh vien(XV,P) Athanh vien(Y,P) Acung km(X,Y) AVX# Y [L:1] w2: <thanh_vien(X,P) Athanh_vien(Y,P) AX # Ya- biet(X,Y) [1:2] w3: =thanh_vien(X,P) Athanh_vien(Y,P) Aket_hon(X,Y) [1:2] O day, rang budc yéu w2 va w3 quan trong hon wị
2.5 TIEU KET CHUONG 2
Chương 2 đã trình bày về cú pháp và ngữ nghĩa của chương trình Datalog dạng tuyển cùng với hai ràng buộc mạnh và yếụ Các ràng buộc này thường được bổ sung vào chương trình Datalog đạng tuyên nhằm biểu diễn tri thức một cách linh
hoạt Các ví dụ đã được minh họa chỉ tiết Trong chương 3 sẽ trình bay về việc biểu
diễn một số bài toán bằng các chương trình Datalog dạng tuyên, tiến hành cài đặt và thực thi trên hệ thống lập trinh logic DLV
Trang 35Chuong 3
UNG DUNG CHU ONG TRINH DATALOG DANG TUYEN
Chương này sẽ trình bày việc ứng dụng của chương trình Datalog dạng tuyên nhằm biểu diễn một số bài toán kinh điển trong lý thuyết đồ thị và tiến hành cài đặt, thực thi bằng hệ thống lập trình logie DLV Trước hết chương 3 sẽ
giới thiệu về DLV 3.1 HE THONG DLV
3.1.1 Téng quan vé hé théng DLV
DLV là một hệ thống cơ sở dữ liệu suy diễn, 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 trường Đại học Calabria và trường Đại học Công nghệ Viennạ
Phiên bản đầu tiên của hệ thống ra đời vào năm 1997 sau nhiều năm nghiên cứu lý thuyết 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 Hiện tại, DLV là một hệ thống biểu diễn tri thức và suy
diễn rất hiệu quả Phiên bản mới nhất của DLV và các tài liệu liên quan có thể tham
khảo theo địa chỉ:
http://www.dlvsystem.com
Hệ thống DLV được cài đặt trên các hệ điều hành (HĐH) Unix/Linux hoặc
Windows Hình vẽ sau đây minh họa kiến trúc tổng quan của hệ thống DLV:
Trang 36Model Checker | Intelligent Input —»WCH La Model Grounder al > oO utput > Generator L Relational
Database Relational Database
Hình 3.1 Kiến trúc tổng quát của hệ thống DLV
Ngay khi khởi động, chương trình đầu vào được sẽ đượ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 đầu vào có thể
viết dạng tập tin văn bản, nhưng DLV còn cung cấp một giao diện đối với cơ sở dữ liệu quan hệ qua ODBC Module Intelligent Grounder phat sinh một chương trình nên GrounăP) có kích thước nhỏ hơn nhiều so với chương trình nền đầy đủ Sau đó
sự tính toán được thực hiện bởi các module Ä⁄odelGenerafor và ModelChecker
Chú ý rằng, với sự có mặt của các ràng buộc yếu, sau quá trình nền hóa chương
trình, việc tính toán được thực hiện bởi module WCH (WeakConstraintsHandler)
3.1.2 Cấu trúc chương trình trong hệ thống DLV
Một chương trình cài đặt trong DLV thường bao gồm phần dữ liệu (CSDL EDB) và các quy tắc suy diễn (CSDL IDB) được viết theo cấu trúc ngôn ngữ của hệ thống DLV Tuy nhiên, ta thường cung cấp CSDL EDB trong một tập tin và các
quy tắc suy diễn được lưu vào tập tin chương trình, thường có phần mở rộng là dl 3.1.3 Thực thi chương trình trên hệ thống DLV
Hệ thống DLV là một tập tin nhị phân có tên là đfummw.exẹ Việc thực thị chương trình được thực hiện bởi dòng lệnh:
đalvmingw [các tùy chọn] tên tập tin chương trình
Trang 37Các tùy chọn được cho ở bảng sau: Bảng 3.1 Một số tùy chọn trên hệ thống DLV Tùy chọn | Mô tả -filter = p | Loc cac vi tt cần hiển thị ở danh sách kết quả -nofacts | Các vị từ EDB sẽ không được đưa vào danh sách kết qua -n=n Tính toán tất cả các mô hình -silent Nếu không muốn thấy dòng thông tin trạng thái của hệ thống -N=n Các số nguyên nằm trong phạm vi [0, N]
Chú ý:Khi viết các chương trình logic ngoài các vị từ được người sử dụng định
nghĩạ Trong hệ thống DLV còn chứa một số vị từ đã được xây dựng sẵn như các vị từ số học, vị từ quan hệ, vị từ danh sách
Khi suy luận và tính toán trên tập hợp dãy số nguyên, có thể sử đụng các vị từ
số học như sau: #int, #succ, #prec, #mod, #absdiff, #rand, +, *, -,/ Trong đó:
#int(X, Y, Z) tra vé gia tri dang khi X < Y <Z
#int(X) tra về giá trị đúng khi X là số nguyên #succ(X, Y) có giá trị đúng khi X+l = Ỵ #prec(X, Y) co gia tri dung khi X-1 = Ỵ
#mod(X, Y, Z) co gia tri ding khi X%Y = Z
#absdiff (X, Y, Z) c6 gia tri ding khi abs(X-Y) = Z
+(X, Y, Z) la lua chon tinh toan Z = X+ Y là đúng khi Z = X+Ỵ
* CX ỴZ) Z= X*Y co giá trị đúng khi Z=X*Ỵ -(X, ỴZ) Z= X-Y co gia tri ding khi Z=X- Ỵ
Trang 383.2 BIEU DIEN, CAI DAT VA THUC THI MOT SO BAI TOAN TREN HE THONG DLV
Phần này trình bày ứng dụng của chương trình Datalog dạng tuyển thông qua
việc biểu diễn một số bài toán quan trong trong ly thuyét đỗ thị, sau đó cài đặt và
thực thi bằng hệ thống lập trình logic DLV 3.2.1.Bài toán Tìm đường đi Hamilton
Cho đề thị có hướng Ớ = (V, E), trong đó V là tập đỉnh và E là tập canh, ae V là một đỉnh của đồ thị Bài toán đặt ra là: Tìm xem có đường đi trong dé thi G bat
đầu từ đỉnh ø và đi qua mỗi đỉnh khác của Œ chính xác một lần hay không?
Đây là bài toán NP đầy đủ trong lý thuyết đồ thị Hiện nay có nhiều cách giải quyết có nhiều cách để giải quyết bài toán nàỵ Thông thường ta có thể viết một chương trình theo phương pháp hướng thủ tục hoặc hướng đối tượng và thực thi bằng một ngôn ngữ lập trình nào đó Tuy nhiên, công việc này khá mất thời gian, đòi hỏi người lập trình phải có khả năng lập trình và am hiểu về một ngôn ngữ lập
trình mới có thể thực hiện
Tận dụng ưu điểm của chương trình Datalog dạng tuyển, ta có thể biểu diễn bài toán này bằng một chương trình Datalog tuyến, sau đó sẽ cài đặt và thực thi nhờ vào hệ thống lập trình logie DLV
Đề biểu diễn bài toán này bằng chương trình Datalog tuyến, ta cần đến một số ký hiệu vị từ sau đây:
Goi inPath la vi ti 2-ngoi để chỉ cạnh nằm trên duong di Hamilton, outPath la
vị từ 2-ngôi dé chi canh khong nam trén dong di hamilton, start 1a vi tir 1 ngéi chi
đỉnh xuất phát, eđge là vị từ 2-ngôi để chỉ cạnh nối 2 đỉnh, vez7ex là vị từ 1-ngôi để
chỉ đỉnh của đồ thị, reached la vị từ I-ngôi dé chi đỉnh có thé đi đến
Chương trình Datalog đạng tun? mơ tả bài tốn này như sau: inPath(X,Y) voutPath(Y,Ÿ) — start(X), edge(X,Y) (1) inPath(X,Y) voutPath(X,Y) <— reached(X), edge(X,Y) (12)
Trang 39reached(X) — inPath(Y,X) (73) < inPath(X,Y), inPath(X,Y 1), YY1 (74) < inPath(X,Y), inPath(X1,Y ), X <>X1 (7s) < vertex(X), not reached(X), not start(X) (7)
Hai quy tắc tuyển r: va r2 dự đoán một tập con Š của các cạnh trong đường di, trong khi các quy tắc còn lại kiểm tra xem Š có chứa một đường di Hamilton hay
không Ở đây, vị từ reached được dùng, liên kết với vị từ dự đoán #Pzíh bởi quy
tắc rạ Quy tắc r› nhằm xác định đỉnh có thé với đến trong đường đi Hamilton Thông qua quy tắc z2, vị từ reøcbed ảnh hưởng đến việc dự đoán của ¿zPath,
được thực hiện bằng cách đệ quy: ban đầu một dự đoán trên cạnh ra từ đỉnh khởi đầu được thực hiện bởi quy tắc đầu tiên, tiếp theo là dự đoán lặp đi lặp lại của các
cung đi ra từ các đỉnh với đến bởi quy tắc thứ hai, cho đến khi tất cả các đỉnh với đến đều được xử lý
Trong các ràng buộc mạnh, hai ràng buộc z4, 7s nhằm đảm bảo tập các cạnh S
được chọn bởi Pafh đáp ứng các yêu cầu sau đây của đường đi Hamilton:
() Không có hai cạnh bắt đầu từ cùng một đỉnh, và
(đi) Không có hai cạnh kết thúc trong cùng một đỉnh
Ràng buộc 7s buộc tất cả các đỉnh trong đỗ thị được với đến từ đỉnh đầu tiên trong dé thị con là được tạo ra bdi S
Như vậy, tập các cạnh Š thỏa mãn cả ba ràng buộc phải chứa các cạnh của một đường di vo, vị, , v trong G bắt đầu tại đỉnh vọ = a và di qua các đỉnh khác nhau cho đến khi không còn đỉnh nào, hoặc nó đi đến lại tại đỉnh khởi đầu ạ Trong
trường hợp sau, đường ởi này là một chu trình Hamilton (lúc đó một đường đi Hamilton có thê tìm ngay được bằng cách loại bỏ cạnh cuối cùng)
Như vậy, cho trước một tập các sự kiện #* đối với các vị từ EDB: vertex, edge, start, chuong trinh PUF' co một tập trả lời khi và chi khi dé thi tương ứng có một
đường đi Hamilton
Trang 40Ta minh hoa viéc tim duong di Hamilton qua dé thi sau G = (V, E), trong đó
tập đỉnh ƒ= {a, b, c, d, e} va tap canh E = {(a,b), (a,c), (ae), (b,c), (c,d), (d.e)}
Tim xem trong đồ thị G có đường đi Hamilton xuất phát từ đỉnh a hay khéng
a————>b
| € —yd————y ©
Hình 3.2 Đồ thi G cho bai toán Tìm đường đi Hamilton
Các mệnh đề đơn vị biểu diễn đồ thị G nhu sau:
start(a) — , verfex(a) —, vertex(b) <—, verfex(c) —, verfex(đ) —, verfex(e) <—
edge(a,b) <—, edge(a,c) —, edge(a,e) —, edge(b,c) —, edge(c,đ) —, edge(d.e) — Mã hóa chương trình Datalog dạng tuyển trên bằng Hệ thống DLV va hru voi
tên file là hamilton.dl:
inPath(X,Y) v outPath(X,Y) :- start(X), edge(X,Y) inPath(X,Y) v outPath(X,Y) :- reached(X), edge(X,Y) reached(X) :- inPath(Y,X)
:— inPath(X,Y), inPath(X,Y1), Y<>Y1 :— inPath(X,Y), inPath(X1,Y ), X <>XI1 :—=vertex(X), not reached(X), not start(X)
Tập tin dữ liệu dbl_BT1 lưu các sự kiện sau:
start(a) vertex(a) vertex(b) vertex(c) vertex (d) vertex(e) edge(a,b) edge(a,c) edge(a,e) edge(b,c) edge(c,d) edge(d,e)
Thực thị chương trình này bằng Hệ thống DLV, ta nhận được | tap trả lời, chính là một đường đi Hamilton của dé thị đã chọ