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 và ứng dụng để biểu diễn tri thức

49 4 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

Thông tin cơ bản

Tiêu đề Tìm Hiểu Ngữ Nghĩa Chương Trình Datalog Dạng Tuyển Và Ứng Dụng Để Biểu Diễn Tri Thức
Tác giả Phan Thi Suong
Trường học Đại Học Huế
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2020
Thành phố Thừa Thiên Huế
Định dạng
Số trang 49
Dung lượng 19,58 MB

Nội dung

Trang 1

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 3

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

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

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

DANH MUC CAC THUAT NGU

Chuong trinh Datalog

Trang 8

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

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

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 12

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

Vi 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 15

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

Chú ý: Đố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 19

Xé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 20

7;Œ) = {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 21

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

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

nonAncestor(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 24

A 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 25

Is = {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 26

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

trả 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 29

2.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 30

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

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

Bà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 35

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

Model 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 37

Cá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 38

3.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 39

reached(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 40

Ta 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ọ

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

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

TÀI LIỆU LIÊN QUAN

w