BO GIAO DUC VA DAO TAO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYÊN VĂN QUY
TÌM HIỂU NGỮ NGHĨA CHƯƠNG TRÌNH
LOGIC PHỎNG ĐOÁN VÀ MỘT SỐ PHƯƠNG
PHÁP TRẢ LỜI CÂU TRUY VẤN
CHUYEN NGANH: KHOA HOC MAY TINH
MA SO: 8.48.01.01
LUAN VAN THAC SI KHOA HOC DINH HUONG UNG DUNG
NGUOI HUONG DAN KHOA HOC PGS.TS TRUONG CONG TUAN
Thừa Thiên Huế, 2020
Trang 2
LOI CAM DOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn khoa học của thầy giáo PGS TS Trương Công Tuấn
Các kết quả nêu trong luận văn là trung thực, có nguồn gốc rõ ràng, được trích dẫn đầy đủ và chưa từng công bố trong bất kỳ công trình khoa học nảo
Tơi xin chịu hồn tồn trách nhiệm về nội dung của luận văn này
Tác giả
Trang 3LOI CAM ON
Trước tiên, tôi xin gởi lời cảm ơn chân thành sâu sắc đến Quy thầy cô giáo Khoa Công nghệ thông tin - Trường Đại học Khoa học Huế cùng trường Đại học An Giang
đã tận tình hướng dẫn, truyền đạt kiến thức, tạo điều kiện thuận lợi trong quá trình học tập và thực hiện luận văn tốt nghiệp
Tôi xin chân thành gửi lời biết ơn đến PGS.TS Trương Công Tuần, người thầy đã hướng dẫn tận tình và có những góp ý sâu sắc, hướng dẫn rất quý báu cho tôi trong suốt quá trình nghiên cứu, kịp thời cho tôi nhiều lời động viên cũng như những nhận xét đúng đắn dé tôi có thể hoàn thành tốt được dé tai này
Trong quá trình thực hiện dé tài, xin chân thành gửi lời cảm ơn đến sự giúp đỡ, những lời động viên từ phía gia đình, đồng nghiệp, bạn bè là động lực to lớn giúp tơi hồn thành tốt dé tài nghiên cứu của mình
Bản thân tôi đã cố gắng hết sức trong quá trình thực hiện đề tài này nhưng chắc chăn sẽ không tránh khỏi những thiếu sót Kính mong quý thầy cô và các bạn tận tình góp ý, chỉ bảo
Xin chan thanh cam ơn!
Thừa Thiên Huế, ngày 20 tháng 02 năm 2020 Học viên
Nguyễn Văn Quy
Trang 4MUC LUC
Trang
LOT CAM ĐOAN Q.25 21 2221211212122112121121122111222 ra i LOT CAM ON 2a ooo ccoc cco csoe see eee sees eet arree ii
MỤC LỤC 2222222221221121112111211121112111211121112112111121212121222 sa iii
Trang 5dấu khi và chỉ khi ø(X) được xác định Một nguyên tố được đánh dấu là nguyên tố
mà mọi biến của nó đều được đánh dấu
Định nghĩa tương tự cho truy vấn và mệnh đề chương trình được đánh dấu Cho một phép đánh dấu ø, ký hiệu X' nếu a(V) = +, Y- nếu ø(7) = — Một phép đánh dấu có thể được xem là một ghi nhớ đề thông báo việc hợp nhất và hợp giải trong SLDNFA về tính chất logic của các biến
Định nghĩa 3.4 (Tập đẳng thức giải được)
1 Một tập đẳng thức trên bộ ký tự > là một tập hữu hạn {s =f, ., Sn = td, trong đó s¿, / là các hạng thức
2 Tập đẳng thức được gọi là có dạng giải được khi và chỉ khi nó là một tập hợp
các nguyên tổ đăng thức có đạng X = ứ, trong đó X là một biến, 7 là hạng thức, X # f
và X chỉ xuất hiện một lần ở về trái và không xuất hiện ở về phải
3 Cho một phép đánh dấu z, một tập đẳng thức được đánh dấu là có dạng giải được dương khi và chỉ khi nó có dạng giải được và không chứa các nguyên tô có
dạng X” =ŸY”
Một phép thế có thể định nghĩa như một tập các nguyên tố đẳng thức có dạng X
=ứ,trong đó X là biến chỉ xuất hiện một lần ở về trái
Định nghĩa 3.5 (Tập đẳng thức giải được đương) Một tập đẳng thức Z; là một đạng
giải được (dương) của tập hợp đẳng thức E khi và chỉ khi Z, có dạng giải được (dương) và E„ là một mgu của #, lúc dé ta noi E 1a co thé giải được Một tập hợp đẳng thức không có dạng giải được gọi là không thể giải duoc Hai nguyén t6 p(t), p(s) gọi là có thể hợp nhất khi và chỉ khi f =s có thể giải được
Rõ ràng một tập hợp đẳng thức được đánh dau có đạng giải được khi và chỉ khi nó có dạng giải được dương
Bằng cách dùng khái niệm dạng giải được đương, ta định nghĩa khái niệm hợp giải dương và hợp giải âm giữa một truy vấn được đánh dấu và một mệnh đề chương
Trang 6DANH MỤC CÁC THUẬT NGỮ
Chuong trinh logic Chương trình logic nén
Chuong trinh logic phong doan Chương trình logic thông thường Chương trình logic xác định Cơ sở Herbrand Hạng thức Lập trình logic Literal 4m Literal dong Mệnh đề đơn vị Mệnh đẻ xác định Mô hình bền vững Mô hình cực tiểu Mô hình nhỏ nhất Ngữ nghĩa mô hình bền vững Ngôi Nguyên tố Phép thế Phỏng đoán Quy tắc Thẻ hiện Toán tử hệ quả trực tiếp VỊ từ VỊ từ phỏng đoán Vũ trụ Herbrand Logic program Ground program
Trang 7Bp 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 tap con của co so Herbrand Bp
Mô hình nhỏ nhất của P
Toán tử hệ quả trực tiếp trên 27”
Trang 8ALP FF NG PG SLD SLDNF
DANH MUC CAC CHU VIET TAT
Abductive logic programming
Finite Failure
Negative Goal
Positive Goal
Linear Selection resolution for Definite clauses
SLD - resolution with Negation as finite Failure
Trang 9Hinh 3.1 Hinh 3.2 Hinh 3.3 Hinh 3.4 Hinh 3.5 Hinh 3.6 Hinh 3.7 Hinh 3.8 Hinh 3.9 DANH MỤC CÁC HÌNH VẼ, ĐÒ THỊ Trang Tiñnh câu frả.lời,cho dich G= €2D cscs eimiennmvemenneemnenever nner 26 Tính câu trả lời cho đích G = G ieeccccececeeceeeteeseeeeeeteeteeseneeneeseneenees 27 Tính câu trả lời cho đích Ơ = <— s 2t SH 28 Tỉnh câu trã.lòi.cho đích C= €2 Sivscmsicscisiier sieeve cmv senentcsiens 30 Bác bỏ SLDNFA cho truy vấn ©— ƒøwÏfy_ lamp -55 55-<2 38 Cửa số làm việc của SWI-Prolog - 52-2222 221222122212221221222 e6 39
Kết quả thực thi bài toán l -22222222222212221222122222.22.2 e6 42 Kết quả thực thi bài toán 2 2-22222222212221121121122222.22 xe 44 Kết quả thực thi bai toán 3 bằng hệ thống CIFE 222-22222xce 46
Trang 10MO DAU
Trong suốt hai thập kỷ qua, lĩnh vực nghiên cứu về lập trình logie đã không ngừng phát triển Lập trình logie sử dụng các cơ chế suy diễn căn cứ vào các quy tắc trong một chương trình logic Tuy nhiên, hiện nay lập trình logic đã bộc lộ những hạn chế nhất định và không thể giải quyết đối với các bài toán phức tạp trong thực tế Da có nhiều công trình nghiên cứu nhằm mở rộng lập trình logic, trong số đó - Lập trình logie phỏng đoán (ALP - Abductive Logic Programming) là một hướng nghiên cứu
được nhiều nhà khoa học quan tâm
ALP được bắt nguồn từ sự phỏng đoán - là một hình thức suy luận để tìm các giải thích cho quan sát đã cho Xuất phát từ một chương trình logic P và một quan sát
QO để tìm các giải thích có thể cho Ó dựa theo một tập vị từ đặc biệt được gọi là các
vị từ phỏng đoán
ALP là sự kết hợp của lập trình logic và phỏng đoán, trong ALP hình thành nên
một cú pháp mới của chương trình logic, được định nghĩa bởi một bộ ba (P, A, IC), trong đó P là một chương trình logic, ⁄4 là một tập hợp các vị từ được gọi là các vị từ phỏng đoán, 7C là một tập các ràng buộc toàn vẹn ALP được xem là một khuôn khổ
biểu diễn tri thức cấp cao, cho phép giải quyết các bài toán dựa trên lập luận phỏng đoán ALP thường được dùng để giải quyết các bài toán trong Chuẩn đoán: Lập kế
hoạch; Xử lý ngôn ngữ tự nhiên; Học máy,
Luận văn nghiên cứu về ngữ nghĩa của chương trình logie phỏng đoán và các phương pháp trả lời câu truy vấn trên lớp chương trình này Những nội dung nghiên cứu của luận văn có ý nghĩa khoa học về mặt lý thuyết cũng như trong ứng dụng trong thực tiễn
Cấu trúc luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận và tài
liệu tham khảo
Trang 11Chương 2 trình bày về cú pháp và ngữ nghĩa của chương trình logic phỏng đoán
cùng với một số ví dụ minh họa
Chương 3 trình bày một số phương pháp để trả lời câu truy vấn đối với chương trình logic phỏng đoán, bao gồm phương pháp EK, KM và SLDNFA Chương 3 cũng
trình bày tổng quan về hệ thống CIEE, tiến hành việc cài đặt một số bài toán minh
họa bằng hệ thống CIFF và thực thi bằng phần mềm SWI-Prolog
Phần kết luận nêu những kết quả đã đạt được và hướng phát triển của luận văn Do thời gian có hạn và bản thân chỉ mới bước đầu nghiên cứu vẻ lĩnh vực này nên không thể tránh khỏi những thiếu sót, kính mong sự giúp đỡ và góp ý thêm của
Trang 12Chương 1
TONG QUAN VE CHUONG TRINH LOGIC
Chương một trình bày các khái niệm co sở của chương trình logie, lớp chương trình đơn giản nhất của chương trình logie được gọi là chương trình logic xác định sẽ được xem xét trước tiên cùng với ngữ nghĩa mô hình nhỏ nhất của nó Tiếp theo, chương 1 sẽ trình bày về chương trình logic thông thường và tiếp cận ngữ nghĩa tập trả lời của lớp chương trình này Đây là những kiến thức làm tiền đề cho các nghiên cứu tiếp theo ở chương 2 và 3
1.1 MỌT SÓ KHÁI NIỆM CƠ SỞ
Định nghĩa 1.1 (Bộ ký tự) Bộ ký £# bao gồm các lớp ký hiệu sau: 1 Hằng, thường ký hiệu là các chữ cái thường a, Ö, e,
2 Biến, thường ký hiệu bởi các chữ cái in hoa X, Y, Z,
3 Các ký hiệu hàm, thường ký hiệu bởi ƒ ø, ñ,
4 Các ký hiệu vị từ, thường ký hiệu bởi 7Ø, q, r,
5 Các hằng vi tir: true, false
6 Các ký hiệu kết nỗi—¬(phủ định), v(uyên), A(hội), (suy ra)
7 Các ký hiệu lượng từ: V(với mọi), (tổn tại)
§ Dấu ngoặc don trái (, dấu ngoặc đơn phải), dấu phây,
Mỗi ký hiệu hàm, ký hiệu vị từ có kèm theo một số tự nhiên xác định để chỉ số
các đối số tham gia cùng với ký hiệu hàm hoặc ký hiệu vị từ đó, gọi là ngôi của chúng
Trên cơ sở bộ ký tự đã cho, người ta đưa ra định nghĩa về hạng thức Hạng thức là
yếu tố quan trọng của công thức logic, được xây dựng từ các hằng, biến, hàm và được định nghĩa hình thức 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:
Trang 13(ii) Mỗi biến trong 44 là một hạng thức,
(iii) Nếu ƒlà ký hiệu hàm ø#-ngôi trong 44 và /¡, f„ là các hạng thức thì ƒứi /a) là
một hạng thức,
(v) Hạng thức chỉ được sinh ra bởi các quy tắc trên
Một hằng được xem là ký hiệu hàm 0-ngôi Hằng và biến là các hạng frức nguyên tố hạng thức nền là hạng thức không chứa biến
Định nghĩa 1.3 (Nguyên tố) Một nguyên tố có dạng p(ñ ,fa), trong đó p là ký hiệu vị từ m-ngôi và các đối ứ¡, £„ là các hạng thức Wguyên ?ố nên là nguyên tổ không chứa biến
Vi du 1.1 Xét nguyén t6 mother(Hoa,Mai), trong dé mother là vị từ 2-ngôi đê chỉ
mối quan hệ mẹ Hoa, Mai là các hằng va mother(Hoa,Mai) co y nghia la Hoa là mẹ
cua Mai
Định nghĩa 1.4 (Literal) Literal là một nguyên tố hoặc phủ định của nguyên tố Ta gọi nguyên tổ là /#eral đương và litaral âm là phủ định của nguyên tố, ký hiệu —¬p, với p là một nguyên tố
Trong ngôn ngữ tự nhiên, việc kết hợp các từ nào đó sẽ tạo nên những câu có nghĩa Các câu như vậy được biểu diễn trong logic vị từ bởi những cấu trúc đặc biệt được xây dựng từ các hạng thức và các lớp ký hiệu của bộ ký tự Những cấu trúc này được gọi là các công fhức logic (hoặc đơn giản là công thức) và được định nghĩa như sau:
Định nghĩa 1.5 (Công thức) Cho 7 là tập các hạng thức trên bộ ký tự 41 Công thức được định nghĩa đệ quy như sau:
(i) Néu p là ký hiệu vị từ z-ngôi trong 44 và íi, ,f„ 7 thì p(, ,f„) được gọi
là một công thức nguyên fỐ (hoặc đơn giản chỉ gọi là nguyên fÔ);
Trang 14Œ) Nếu F là công thức và X là một biến trong 4thì VX Œ'),
AX (ŒƑ) là các công thức; VX và 3X được gọi là phần lượng từ, F là miễn tác dụng của lượng từ;
(0v) Công thức chỉ được sinh ra bởi một số hữu hạn các quy tắc trên
Một 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 Định nghĩa 1.6 (Công thức đóng)
1 Một biến X trong công thức được gọi là biến ràng buộc nếu X nằm trong miễn tác
dụng của lượng từ V có mặt trong công thức đó; trái lại, nó X được gọi là bién tur do
2 Một công thức không có biến tự do được gọi là công thức đóng
Vi du 1.2 VY AX (POY) ^A q(*)) là công thức đóng, trong khi 3X (p(Y,Y) A q(@X)) không phải là công thức đóng, vì Y là biến tự do
Nếu Xi, X: , X„ là các biến xuất hiện trong công thức # thì M142 4X.(F) được ký hiệu là 3# Tương tự,VXIVX: VXn(F) được ký hiéu la VF Khi xem xét
công thức có dạng VƑ, ta thường bỏ qua lượng tử V, lúc đó lượng từ V sẽ được hiểu ngầm định Trong phân tiếp theo sẽ xét lớp chương trình logic đơn giản nhất, gọi là chương trình logic xác định 1.2 CHƯƠNG TRÌNH LOGIC XÁC ĐỊNH 1.2.1 Cú pháp Định nghĩa 1.7 (Mệnh để xác dinh) Ménh đề xác định là một công thức có dạng: a <&— Ủì, ,bụ (1)
trong do n = 0, a, b; la cac nguyén t6,7=1, 2, ,n, nguyén t6 a duoc goi la dau va
bị, ,bạ„ được gọi là thân của quy tắc, dấu phây được ký hiệu thay cho phép hội (a)
Trang 15Trong ménh dé (1), nếu ø = 0 thì nó được gọi là mệnh đề đơn vị, nghĩa là mệnh đề có dạng: ac đó là mệnh dé với thân rỗng, ta quy ước phan thân rỗng là true va ky hiéu < co thé bỏ qua Định nghĩa 1.8 (Chương trình logic xác định) Chương trình logic xác định là một tập hữu hạn khác rỗng các mệnh đề xác định
Ví dụ 1.3 Xem chương trình logie xác định gồm các mệnh đề sau: love(X,Y) <— woman(X), child_of(Y, X) (1)
woman(Mai) (e1)
child_of(Hoa, Mai) (e2)
Trong mệnh đề z¡ của ví dụ này, woman(Y) là nguyên tố để chỉ X là một phụ nit, child_of(Y, X) la nguyén té dé chi Y 1a child_of ctia X, love(Y, Y) là nguyên tô đê chỉ X thương yéu Y
Y nghia cua ménh dé r: 1a moi phụ nữ đều thương yêu con của họ và các mệnh dé don vi e1, e2 06 y nghia: Mai la mot phu nt va Hoa la con cua cua Mai
Ví dụ 1.4 Xét chương trình logic xác định P gồm các mệnh để sau đây để mô tả các quan hệ anh/em (sibling), chu/bac (cousin), ho hang (related) nhu sau:
nN: sibling(X,Y) < parent(X,Z), parent(Y,Z)
T2: cousin(X,Y) << parem(XV,X,), paren(Y,Y,), sibling(X,,Ÿ,)
T3: cousin(X,Y) <— parent(X,Xp), parent(Y,Y,), cousin(Xp,Yp)
HẠ: related X,Y) <_ sibling(X,Y)
Trang 16Trong chương trình này thi parent la vi tt chỉ quan hệ cha/me va parent(C,P)
có nghia la P 1a cha/me cua C, cac vi tt sibling, cousin, related lần lượt chỉ các quan hệ anh/em, chú/bác, họ hàng
Quy tắc rị có nghĩa: "Với mọi X và Y, X la anh/em của Y nếu tổn tại Z là cha/mẹ
của X và Y và Y, Y không phải cùng một người" tức là: s¿b/g(Y,V) là đúng nếu X, Y là những người cùng chung cha mẹ, nhưng loại trừ trường hop sibling(a,a) do X # Y
†rong quy tắc ri
Quy tắc ra và rs định nghia vi tlt cousin va các quy tắc r4, rs, re định nghĩa vị tr related Vi du 1.5 Xem chương trình logic sau để định nghia sé tr nhién (biéu thị bằng ký hiệu vị từ m2) rị: na/(0) r2: nat(s(X)) < nat(xX)
Trong chuong trinh nay thi sla ky hiéu ham 1-ngéi, duoc xác dinh boi s(X) =X
+1 voi X thudc tap số tự nhiên Ñ, nguyên tố n(x) dé chi X là một tự nhiên Mệnh để
đơn vị z¡ có ý nghĩa là 0 một số tự nhiên và z2 là mệnh đề với ý nghĩa là nếu X là số
tự nhiên thì s(X)) cũng là số tự nhiên
1.2.2 Ngữ nghĩa
Phần này sẽ trình bày ngữ nghĩa chương trình logic xác định theo tiếp cận lý
thuyết mô hình Trước hết ta giới thiệu một số khái niệm
Định nghĩa 1.9 (Vũ trụ/Cơ sở/Thê hiện Herbrand) [2] Cho P là chương trình logic
xác định
e Vii tru Herbrand của P, ký hiệu Up, la tap cac hang thire nén duoc xay dung
từ các hằng và các ký hiệu hàm trong P
Trang 17e Mot thé hién Herbrand (hoặc đơn giản là thể hiện) của ?P là một tập con tùy ý
của cơ sở Herbrand Bp cua P
Một thể hiện Herbrand có thể được xem như một tập các nguyên tố nên có giá
tri dung trong một ngữ cảnh đã cho Vũ trụ Herbrand của chương trình logic xác định
P luôn luôn là vô hạn nếu trong P co it nhất một ký hiệu hàm có số đối số lớn hơn 0
Ví dụ 1.6 Xét chương trình logic xác định P trong Ví dụ 1.5: Vũ trụ Herbrand cua P la: Up = {0, s(0), s(s(0)), s(s(s(0))), } Co sở Herbrand cua P la: Bp = {nat(0),nat(s(0)), nat(s(s(0))), } Một số thể hiện Herbrand của P là: I, = {nat(0)} 1 = {nat(0), nat(s(0))} Jà = {nat(s"(0)) |n € N} Định nghia 1.10 (Ménh dé nén) Một mệnh đề nền của mệnh đề C có dạng (1) là một
mệnh đề C° nhận được từ C bằng cách thay thế các biến trong C bởi các hạng thức nén trong vii tru Herbrand Up Ky hiéu ground(C) la tập tất cả mệnh để nền của C va dat ground(P) = U ground (C), trong đó P là chương trình logic xac dinh, ground(P)
CeP
được gọi là hiện hành của P
Định nghĩa 1.11 (Mô hình) [2] Cho 7 là một thể hiện của chương trình logie xác định
P Lúc đó 7 là mô hình của P nếu mợi mệnh để của P là đúng theo thể hiện 7
Vi du 1.7 Xét các thể hiện 7, 72, 7; của chương trình logic P trong ví dụ 1.5, rõ ràng 1ì không phải là mô hình của P vì mặc dầu 7 là mô hình của mệnh đề øz⁄(0) nhưng 1¡ không phải là mô hình của mệnh đề z¿ vì tồn tại mệnh dé nén nat(s(0)) < nat(0) của 7z mà 7¡ không phải là mô hình của mệnh để nền này Cũng vậy, 72 cũng không
Trang 18của 72 mà ?› không phải là mô hình của nó Tuy nhiên, J3 la m6 hinh cua P Ta co 1a
mô hình của 7+ j; cũng là mô hình của z2 Thật vậy, xét mệnh đề: nat(s(t))) — nat(t)
là một mệnh để nền nào đó của mệnh đề z2, trong đó ¢ e ? Rõ ràng mệnh dé nat(s(t))
< nat(t) ding vì naf(0 và naf(s())) đều thuộc Ƒ› Vậy 1; là mô hình của P Định lý 1.1 [2] Mọi chương trình logic xác định đều có mô hình nhỏ nhất
Ta ký hiệu mô hình nhỏ nhất của P là Mp
Định nghĩa 1.12 (Ngữ nghĩa chương trình logic xác định) [2] Cho ? là chương trình logic xác định, ngữ nghĩa của P là mô hình nhỏ nhất A⁄Zp của P
Mô hình nhỏ nhất Mp có thể tính được bằng cách sử dụng một toán tử 7p được định
nghĩa như sau:
Định nghĩa 1.13 [2] Cho P là chương trình logic xác định Đặt 7p: 2” -> 2 là
ánh xạ được xác định như sau: Với mỗi 7 e
Tp)={A e Bp| 3 A<— áli , 1„ e ground(P) và {⁄4ù, , „} C7} trong đó 2# là tập các tập con của cơ sở Herbrand Bp
Dinh lý 1.2 [2| Cho P là chương trình logic xác định Lúc đó toán tử 7p đơn điệu và điểm bất động nhỏ nhất của 7? là mô hình nhỏ nhất A⁄p của P
Mệnh đề 1.1 Cho P là chương trình logic xác định Mô hình nhỏ nhất Ä⁄p của P là
Trang 19Tp = {nat(0)} Tp = { naf(0), naf(s(0))} Tp = { nat(0), nat(s(0)), naf(s(s(0)))} Tp = {nat(s"(0))|n © {0, 1,2, .}} Như vậy mô hình nhỏ nhất của chương trình logic P là: Mp = {nat(s"(0)) |n € {0, 1, 2, .}}
1.3 CHUONG TRINH LOGIC THONG THUONG
Các chương trình logic xác định biéu dién cho tri thirc duong va cho phép m6 hình hóa khá nhiễu bài toán khác nhau, các mệnh đề trong chương trình mô tả các đối tượng xác định và mối quan hệ giữa chúng Các quan hệ này được thể hiện rõ trong mô hình nhỏ nhất - chứa các nguyên tố nền là hệ quả logie của chương trình Tuy
nhiên, có nhiều trường hợp đòi hỏi một cấu trúc để mô hình hóa khái niệm phủ định
Phủ định là một khái niệm ngôn ngữ tự nhiên và thường gặp trong nhiều tình huống
thực tế Chang hạn, với mệnh đề:
connecfed(X) hub(Y), link(Y, X)
để định nghĩa việc các đơn vị được kết nối với ít nhất một trung tâm điểu khiển, ta
cũng có thể nghĩ đến việc định nghĩa các đơn vị không kết nối đến một trung tâm điều khiển nào cả Điều này có thê mô hình hóa một cách tự nhiên bằng cách đặt phép toán phủ định øof trước các nguyên tố, chẳng hạn quy tắc sau có chứa phép toán phủ
định not:
badlyconnected(X) < not connected(X)
Định nghĩa 1.14 (Chương trình logic thông thường) Chương trình logic thông thường
là một tập hữu hạn khác rỗng các mệnh đề có dang:
a<b,, , bm, not c, , not Cn
trong dé n, m> 0, a va bị, c¡ là các nguyên tố
Trang 20Đối với chương trình logic thông thường, có thể tồn tại nhiều mô hình cực tiêu nhưng không có mô hình nhỏ nhất Chẳng hạn, xét chương trình logic thông thường trong ví dụ sau:
Ví dụ 1.9 Cho chương trình logic thông thường gồm các mệnh đề sau:
man(a) <
single(X) <— man (X), not husband(X) husbandX) <— man(Y), not single(Y) Chương trình logic này chỉ có hai mô hình cực tiêu:
M, = {man(A), single(A)}, M2 = {man(A), husbandA)}
và không có mô hình nhỏ nhất do Ä⁄¡ # Ä⁄2 và Ä⁄¡ Mi
Từ ví dụ trên, ta nhận thấy khi cho phép mệnh đề có chứa literal âm thì chương trình có thể tồn tại nhiều mô hình cực tiểu nhưng không có mô hình nhỏ nhất Vấn đề đặt ra ở đây là khi một chương trình logic thông thường không tồn tại mô hình nhỏ nhất thì ngữ nghĩa của chương trình sẽ được xác định như thế nào? Trong phân tiếp theo sẽ trình bày một tiếp cận nhằm giải quyết van dé này là tiếp cận theo ngữ nghĩa tập trả lời [6]
Từ đây về sau, để đơn giản, ta sẽ gọi chương trình logic thông thường là chương
trình logic Trước hết ta có một số khái niệm sau:
Định nghĩa 1.15 [6] (Phép biến đổi Gelfond - Lifschitz) Cho P là chương trình logic
Goi ground(P) la hiện hành của P Đối với mọi thé hiện A⁄ của P, ký hiệu P là
chương trình nhận được từ ground(Đ) bằng cách loại bỏ:
1 Các quy tắc có literal phủ định not 44 trong thân của nó, với 44 e À⁄ 2 Tat ca literal not.A trong thân của các quy tắc còn lại
Điều kiện 1 nói rằng nếu 44 € M thì thân quy tắc có chứa literal not 4 không thê trở thành đúng vì vậy ta có thê loại bỏ quy tắc này Mặt khác, nếu A £ A⁄ thì not A có thê giả sử là đúng và được loại bỏ khỏi thân quy tắc chứa nó
Trang 21Rõ ràng P* là chương trình logic không chứa phủ định, nó là chương trình logic xác định, vì vậy P* có mô hình nhỏ nhất Ví dụ 1.10 Cho ? là chương trình logic: a < notb b < nota c — anotb Xét thê hiện [i= {a, c} va b= {b} Thu gon ph gồm các quy tắc: ac cea
và mô hình nhỏ nhất của P” chính là {a,c}
Xét thê hiện J, = {a, c} va b= {b} Thu gon p gém 1 quy tac: be
và mô hình nhỏ nhất của P' chính là {Ð}
Định nghĩa 1.16 [6] (Tập trả lời) Thể hiện 7 của chương trình logic P được gọi là fập
trả lời của P nếu 7 là mô hình nhỏ nhất của P! Ví dụ 1.11 Xét chương trình P gồm các mệnh đề sau: s < notgd q < nots p<-— qnots ƒ snotp
Xét h = { p, g} Khi đó, P gồm các mệnh để: ø và p < q và mô hình nhỏ nhất của no la {p, g} =h Vay fla tập trả lời của P
Xét = {s} Khi đó, P” gồm các mệnh đề:
Ss
f<s
Trang 22Mô hình nhỏ nhất của P” là {s,/} #5 Vì vậy I2 không là tập trả lời của ?
Định nghĩa 1.17 (Ngữ nghĩa chương trình logic) Ngữ nghĩa của chương trình logic
P được xác định bởi tập các tập trả lời của P
1.4 CAC TINH CHAT CUA TAP TRA LOI
Phần này trình bày một số tính chất quan trọng của các tập trả lời Trước tiên ta sẽ xem xét mối quan hệ giữa tập trả lời và mô hình cực tiểu của chương trình logic Định lý 1.3 [6] Cho P là chương trình logic Lúc đó mọi tập trả lời của P đều là mô
hình cực tiểu của P
Hệ quả 1.1 Các tập trả lời là không thể so sánh nhau được, nghĩa là nếu A⁄¡ và Ä⁄› là
các tập trả lời của chương trình logic P thì Ä⁄\ # Ä⁄2 và M› # Mi
Các tập trả lời là sự tổng quát hóa ngữ nghĩa đối với chương trình logic xác
định, điều này được thể hiện bởi kết quả sau:
Định lý 1.4 [6] Đối với chương trình logic xác định thì tập trả lời chính là mô hình nhỏ nhất của nó
1.5 LAP LUAN TU CAC TAP TRA LOI
Một chương trình logic có thể có một hoặc nhiều hoặc không có tập trả lời Vấn đề đặt ra là cách thức suy luận từ ? sẽ được xác định như thế nào Đối với chương trình chỉ có một tập trả lời Ä⁄, một nguyên tố nên ø được xem là đúng nếu ø e Ä⁄ và
sai nếu ø g Ä⁄ Điều này thường được mở rộng để suy luận từ tất cả tập trả lời của P theo hai dạng đối ngẫu nhau:
Lập luận bất chấp: Một nguyên tố nền a là hệ quả bất chấp của P, ký hiệu P Ep a
nếu ø thuộc vào một tập trả lời Ä⁄ nào đó của P
Lập luận thận trọng: Một nguyên tố nền z là hệ quả thận trọng của P, ký hiệu P E„
a nếu øz thuộc moi tập trả lời của P
Trang 23Ví dụ 1.12 Xem chương trình logic P gồm các mệnh đề sau:
p(4)
1X) <p), not g(X)
Luc do P Fy r(a) va P F, r(a) vi r(a) ding trong moi tap tra loi Tuy nhién voi P’ = PU {4(2} thì do {p(a), q(a)} là tập trả lời duy nhất cia P’ nén P’ #, r(a) va P
# a)
1.6 TIEU KET CHUONG 1
Chương 1 da trinh bay cu pháp và ngữ nghĩa của chương trình logic xác định và chương trình logie thông thường Ngữ nghĩa của chương trình logic xác định được xác định bởi mô hình nhỏ nhất, trong khi ngữ nghĩa tập trả lời được thiết lập cho chương trình logic thông thường có chứa phép phủ định Trong Chương 2 và sẽ trình bày về chương trình logie phỏng đoán và một số phương pháp trả lời câu truy vấn đối với lớp chương trình này
Trang 24Chương 2
CHƯƠNG TRÌNH LOGIC PHỎNG ĐOÁN
Chương này trình bày về cú pháp và ngữ nghĩa tập trả lời của chương trình logie phỏng đoán — một mở rộng của chương trình logic đã xét ở chương 1
2.1 GIỚI THIỆU
Phỏng đoán là một dạng suy luận dựa vào một số quy tắc logic và một câu truy vấn cho trước (còn gọi là quan sát) nhằm mục đích tìm một giải thích cho quan sát đỏ bằng cách sử dụng các quy tắc logic đã cho Phỏng đoán được sử dụng rộng rãi trong các lập luận thông thường, chẳng hạn trong chuẩn đoán, suy luận từ ảnh hưởng gây ra Chẳng hạn, xem ví dụ về lập luận phỏng đoán sau đây, trong đó mô tả tình huỗng về một người đi bộ trong một khu vườn trong buổi sáng và gây ra việc giày của ông ta bị ướt Một giải thích đơn giản đối với quan sát giày của ông ta bị ướt là do cỏ ướt Tuy nhiên, các giải thích khác có thể là do máy phun nước hoặc đo trời có mưa vào tối hôm trước Các giải thích được suy diễn phỏng đoán từ các quan sát và các quy tắc logic Ta có các quy tắc logic biểu diễn như sau:
grass is wet <— rained last nighí grass is wet <— sprinkler was on
shoes_are_wet <— grass is wet
Vé6i cdc quy tic nay, quan sat O = shoes are wet co thê được giải thích là đo ca hai nguyén nhan 1a rained_last_night va sprinkler_was_on
Thông thường, trong khuôn khổ phỏng đoán, có một thành phần được thêm vào
là một tập các ràng buộc toàn vẹn JC Untergrity Constraints), nghia la mot tap cac
công thức phải được thỏa mãn bởi một tập A các giả thiết có thê chấp nhận được đê
suy luận cho quan sát @ Trong ví dụ trên, một ràng buộc toàn ven có thể là:
rained _last_night —> ƒalse
Với ràng buộc toàn vẹn này thì mọi giải thích phỏng đoán chứa rained Iast nighí đều bi cam
Trang 252.2 CHUONG TRINH LOGIC PHONG DOAN
Phần này tập trung trình bày về cú pháp và ngữ nghĩa của chương trình logic phỏng đoán [3]
2.2.1 Cú pháp
Định nghĩa 2.1 (Chương trình logic phỏng đoán) [3] Chương trình logic phỏng đoán
(viết tắt ALP) là bộ ba (P, 4, 7C), trong đó:
e P là một chương trình logic, nghĩa là một tập hữu hạn các mệnh đề
pelha ah trong đó p là nguyên tố và ñ, ,/a là các literal
e4 là một tập các nguyên tố nền, được gọi là các nguyên tố phỏng đoán Các vị từ của các nguyên tổ phỏng đoán không xuất hiện trong phần đầu của mọi mệnh đề trong P e JC la mét tap các ràng buộc toàn vẹn, mỗi ràng buộc toàn vẹn là công thức có dạng: L1A \In> hoặc trong đạng kéo theo tổng quát hơn: TIA ATa->p
trong đó p là nguyên tố và mỗi 7¡ là một literal và mỗi 44; là một nguyên tố Tất
cả biến trong Ø, Ứ¡A A Ủa đều ngầm định được lượng hóa bởi lượng từ với mọi
trên phép kéo theo
Ta dùng ký hiệu -> thay cho ký hiệu < để phân biệt ràng buộc toàn vẹn với các
quy tắc
Chú ý: Mỗi nguyên tế trong tập giải thích phỏng đoán A phải thuộc tập nguyên tổ phỏng đoán 41, nghĩa là A C41 Trong ví dụ trên thì tập các vị từ phỏng đoán là:
A= tramed last night, sprinkler was on}
Ta xem các vị từ xuất hiện trong ALP (P, A, JC) nhw la chit ky cua (P, A, IC)
Trang 26Định nghĩa 2.2 (Câu truy vấn) [3] Một câu fruy vấn Q đối với ALP (P, A, IC) la hoi
các literal mà các vị từ của nó là thuộc chữ ký của (P, A, IC) Cac bién trong O ngam
định được lượng hóa bởi lượng từ tổn tại với phạm vi là Ó Truy vấn rong được biểu
diễn như là /rue
Một cách không hình thức, với ALP P, 44, JC} cho trước và câu truy vấn QO, mot
câu trả lời phỏng đốn đơi với O là một tập các nguyên tô phỏng đoán nên A sao cho cùng với P sẽ “thỏa” cả @ và JC Khái niệm “thỏa” phụ thuộc vào ngữ nghĩa của chương trình logic P Ta có định nghĩa hình thức sau:
Định nghĩa 2.3 (Câu trả lời phỏng đoán) [3] Một cẩu trả lời phỏng đoán đối với câu truy van Q theo ALP (P, A, IC) là một tập hữu hạn A các nguyên tố phỏng đoán sao
cho đối với một phép thế nền ø nào đó cho các biến của Q thi: ®PUAE¡p Óø
®PUAE¡pC
Trong đó ký hiệu Eạp là “thỏa” theo ngữ nghĩa của P v2 A Trong phân tiếp theo sẽ trình bày ngữ nghĩa tập trả lời của ALUC ¢P, A, IC)
2.2.2 Ngữ nghĩa
Ngữ nghĩa của chương trình logic phỏng đoán được trình bày sau đây là sự mở rộng của ngữ nghĩa tập trả lời đã xét ở chương 1
Định nghĩa 2.4 (Cơ sở Herbrand của ALP) [3] Cơ sở Herbrand B, cua ALP P = (P, A, IC) la tập các nguyên tô nên trong ? Một thê hiện của 7 là một tập con của cơ so Herbrand Bp
Định nghĩa 2.5 (Tap tra loi) [3] Cho ALP P = (P, A, IC) va ACA 1a m6t tap hitu hạn các nguyên tố phỏng đoán nền Lúc đó ta định nghĩa một tập các nguyên tô nền M(A) la tap tra loi cua ALP (P, A, IC) khi va chi khi:
e MA) la mot tap tra loi cua PU A, va e M(A) thoa tập ràng buộc toan ven IC
Trang 27Ví dụ 2.1 Xét chương trình logic phỏng đoán (P, A, IC), trong do:
P: pea
q<r A: {a} 1C por
V6i A= {a} Lic dé M(A) = {a, p} là tập trả loi duy nhat cua P U A nhung M(A) không thỏa ràng buộc ø —> 7 của 7C (do r không có trong Ä⁄) nên A⁄{A) không phải là
tập trả lời của ýP, A4, JC)
Xét tập (A) = {a, p, g, r} Ta co M (A) khong phải là tập trả lời của (P, A, IC) vi nó không phải là tập trả lời của P t2 A
Vi du 2.2 Xét ALP (P, A, JC), trong do:
Pi pea q<©—r.s 4: {a} IC: q>r
Xét tap A= {a} Taco M(A) = {a, p} la tap tra lời của (P, A, IC) vi no la tap tra loi cua PU Ava M thoa man rang buéc g > r cua JC Tuy nhién, tap {a, p, g} là tập trả lời của P t2 A nhưng không thỏa mãn ràng buộc 7C nén {a, p, g} khéng phai la
tập trả lời của (P, A, IC)
Với ngữ nghĩa tập trả lời của ALP, Định nghĩa 2.2 được thể hiện như sau:
Định nghĩa 2.6 (Câu trả lời phỏng đoán) [3] Cho ALP P = (P, A, JC) va O la một truy vấn nền Một cấu trả lời phỏng đoán đối với CO 1a mot tap hitu han A cac nguyén tố phỏng đoán nên sao cho:
1 A⁄A) E O (nghĩa là Ó thỏa mãn A⁄{A)) 2 MA) thỏa mãn 7C
Trang 28trong do M(A) la tap tra loi cua PU A
Ví dụ 2.3 Xét chương trinh logic phong đoán (P, A, IC), trong do: P: pea q<b 4: {a, b} IC: q->p và câu truy vấn Q = p
Ta có Ai= {đ} và A2= {đ, b} là các câu trả lời phỏng đoán của O vi M(Az) = {a, p} và M(A2) = {a, b, p, q} là các tập trả lời của ýP, A4, JC} và M(A›) FO, M(Az2) FO Định nghĩa 2.7 (Ngữ nghĩa chương trình logic phỏng đoán) [3] Cho ALP 2= Œ, A, IC) Ngữ nghĩa của 7? là tập các tập trả lời của ??
Ví dụ 2.4 Xét chương trình logic phỏng đoán (P, A, IC), trong do: P: peb qea 4: {a, b} IC: qAb-> >qVb
Ta xét cac tap con phong doan:
Voi Ai = {b} thi M(Ai) = {6, p} la tap tra loi cua P U Ai và thỏa các ràng buộc của IC nên Ä⁄{A) là tập trả lời của P
Với Aa= {a} thì AA2) ={a, đ} là tập trả lời của P 2 Aa và thỏa các ràng buộc của IC nên Ä⁄(A2) là tập trả lời của ??
Với Aas = {a, b} thì M(A3) ={ a, b, p, ạ} là tập trả lời của P 2 As nhưng Ä⁄{A3) vi phạm ràng buộc thứ nhất Vậy Ä⁄Z(As) không phải là tập trả lời của 7
Trang 29Như vậy, với câu truy van Q: = p thì Ai = {ð} là câu trả lời phỏng đoán của Ới và Q2 = q thi Ao = {a} la cau tra loi phỏng đoán của Ở›
Ví dụ 2.5 Xét chương trình logic phỏng đoán (P, A, IC), trong do: P: perrabaag qea re A: {a, b} IC: apo Voi A= {b} thi M(A) = {p, b, r} la tap tra loi cua P Do do A= {5} la giai thich cia câu truy vấn QO = p 2.3 MOT SO Vi DU
Vi du 2.6 Xem các câu mô ta sau đây:
- Nếu X sinh ra ở Mỹ thì X là công dân Mỹ,
- Nếu X sinh ra ở ngoài nước Mỹ, X thường trú ở Mỹ và Y đã nhập quốc tịch thì X là công dân Mỹ
- Nếu X sinh ra ở ngoài nước Mỹ, Y là mẹ của X, Y là công dân Mỹ và X đã đăng ký thì X la cong dân Mỹ,
- Mary là mẹ của John
- John không thường trú ở Mỹ
Ta sử đụng các nguyên tố sau với ý nghĩa như sau: bơmn im USA(X) : Xsinh ra ở Mỹ,
citizen_USA (X) : Xa céng dan My,
born_out_USA (X) : X sinh ra bên ngoài nước Mỹ, resident USA(X) : X thường trú ở Mỹ,
naturalized(X) : Ý đã nhập quốc tịch,
Trang 30mother(Y, X) : Ylàme của X,
registered(X) : X da dang ky
mother(Mary,John) : Mary 1a me cia John
Luc do, ta co chuong trinh logic phong doan <P, A, IC>, trong do: * Chương trình logie P gồm các quy tắc: citizen SA (X) — born im SA (X) citizen_USA (X) < born_out_USA (X) “a resident_USA(X) A naturalized(X) citizen_USA (X) < born_out_USA (X) A mother(, X) A resident_USA(Y) A registered(X) mother(Mary,John) — * Tập các vị từ phỏng đoán A: {naturalized, resident_USA, born_out_USA, born_in_USA} * Các ràng buộc toàn vẹn (JC): resident_USA (John) >
Câu truy vấn O = citizen USAVJohn) (“John la céng dan MY”) co hai câu trả lời phỏng đoán: một trong số đó là {born_in USA(John)} (“John dwoc sinh ra tai MY”), va giai phap thtr hai la {born_out_USA(VJohn), registered John)} (“John duoc sinh ra bên ngoài Mỹ” và (John đã đăng ký”) Giải pháp khả năng trở thành một công dân Mỹ do đã thường trú tại Mỹ và đã nhập quốc tịch là không thành công vì nó vi phạm
ràng buộc toản vẹn
Ví dụ 2.7 Cho dé thị vô hướng Ơ = <Ƒ, E>, trong đó V là tập các đỉnh, # là tập các
cạnh Bài toán đặt ra là với ba màu đã cho là vàng (yellow), xanh (blue), đỏ (red), hãy tô màu cho các đỉnh của đồ thi G sao cho hai dinh liền kề không được tô cùng
một màu Giả sử đồ thị G có tập dinh V = {a, b, c, d} va tap cạnh E = {(a,b), (b,c),
(c,d), (d.a)}
Trang 31Để biểu diễn bài toán này bằng chương trình logie phỏng đoán, ta gọi cofor là
vị từ l-ngôi dé chi mau, vertex 1a vi ty 1-ngôi để chỉ đỉnh của đỗ thị, edge la vi ttr 2- ngôi để chỉ cạnh của đồ thị, coloring là vị từ 2-ngôi để chỉ màu được tô của đỉnh
Nguyên tố color(Y) có nghĩa X là màu, verfex(X) có nghĩa Y là một đỉnh, eđge(Y,P)
có nghĩa là có một cạnh từ đỉnh X đến đỉnh Y, coloring(Y,Y) có nghĩa là đỉnh X duoc
tô màu Y Chương trình logic phỏng doan ( P, A, JC ) m6 ta bai toan nay như sau: © Chvong trinh logic P gém cac ménh dé:
edge(a,b) edge(b,c) edge(c,d) edge(d.a) color(red), color(yellow), color(blue) coloring(X) < color(C) , abd_color(X,C) e Tap vi tr phong doan A = {abd color }
e Cac rang buộc toan ven IC:
vertex(X) > coloring(X)
edge(X,Y), color(C), abd_color(X,C), abd_color(Y,C)-false Câu truy vấn QO = coloring(X)
Ví dụ 2.8 Chương trình logie phỏng đoán sau đây mô tả một mô hình đơn giản của quá trình chuyển hóa đường lactose của vi khuẩn E Coli Chương trình logic ? mô tả sự kiện là E Coli có thể sống bằng đường lactose nếu nó thu được hai men permease vagalactosidase Cac men duc tao ra nếu chúng được mã hóa bởi mộtgen (G) và gen G được biểu điễn Các men này được mã hoá bởi hai gen (lac(y) và lac(Z)) trong nhóm gen (lac(X)), được biểu diễn khi số lượng (amount) của glucose là thấp và lactose cao hoặc khi chúng ở mức trung bình Các vị từ phỏng đoán trong 44 khai
báo tất cả các thể hiện nền của vị từ "ømouøwr" Điều này phản ánh sự kiện là trong
mô hình, ta không thê biết số lượng của các chất khác nhau tại bất kỳ thời điểm nào Đây là thông tin không đầy đủ và ta muốn tìm ra những thông tin này trong mỗi trường hợp mà ta đang xem xét Ràng buộc toàn vẹn nói rằng số lượng của các chất
(S) la duy nhất
Trang 32Chuong trinh logic phong doan <P, A, JC> m6 ta bai toan nay nhu sau: e Chuong trinh logic P:
feed(lactose) <— make(permease) , make(galactosidase) make(Enzyme) < code(Gene,Enzyme) , express(Gene) express(lac(X)) < amount(glucose,low) , amount(lactose,hi)
express(lac(X)) <— amount(glucose,medium) , amount(lactose,medium) code(lac(y) , permease) <—
code(lac(z) , galactosidase) —
temperature(low) <— amount(glucose,low)
e Rang budc toan ven IC:
amount(S,V1), amount(S,V2), V1 #V2 — false e Cac vi ttt phong doan A: amount
Câu truy vấn Q = feed(lactose)
2.4 TIEU KET CHUONG 2
Chương hai đã trình bày chỉ tiết về cú pháp và ngữ nghĩa tập trả lời của chương trình logic phỏng đoán Các vi du minh họa được trình bày chỉ tiết nhằm làm rõ các khái niệm và ngữ nghĩa Trong chương 3 sẽ trình bày một số phương pháp đề trả lời truy vấn đối với chương trình logic phỏng đoán
Trang 33Chương 3
MOT SÓ PHƯƠNG PHÁP TRẢ LỜI CÂU TRUY VẤN
Chương 3 trình bày 3 phương pháp để trả lời câu truy vấn đối với chương
trình logic phỏng đoán là EK, KM và SLDNFA Phần cuối chương 3 là trình bày
việc cài đặt và thực thi một số ví dụ minh họa bằng hệ thống CIFE chạy trên phần
mềm SWI-Prolog
3.1 PHƯƠNG PHÁP EK
Phương pháp EK được đề xuất bởi Eshghi và Kowalski [5] Ý tưởng của thủ tục EK là chuyển đổi chương trình logic P thành chương trình logic phỏng đoán <P*,
A*, IC*> , được định nghĩa như sau:
Định nghĩa 3.1 [5] Cho P là chương trình logic P được chuyền đổi thành một chương trinh logic phỏng đoán <P*, 4*,/7C*> như sau:
- Đối với mỗi vị từ p trong P, ta định nghĩa một vị từ mới ø*, các vị từ
mới này xem như là các vị từ phỏng đoán, ký hiệu 4* là tập của tất cả các vị từ phỏng đoán
- Gọi P* là chương trình logic nhận được từ P bằng cách thay thé tat cả sự xuất hiện của zof p trong P bởi p*
- Goi JC* la tap của tất cả các ràng buộc toàn vẹn, bao gồm: đối với mỗi vị từ
p* trong 44* có hai công thức đóng:
pAp"> (Œ)
pvp (2)
Công thức (1) chỉ ra rằng p và p* không thể cùng xuất hiện trong thê hiện
Công thức (2) chỉ ra rằng, đối với mọi thể hiện 1, p hoặc p* phải thuộc 7
Định nghĩa 3.2 (Hoạt động của phương pháp EK) [Š] Phương pháp EK thực hiện theo hai pha đan xen để xây dựng câu trả lời phỏng đoán A cho đích G:
e Pha phỏng đoán: Khởi đầu từ tập giả thuyết phỏng đoán A là tập rỗng Trong pha này, sử dụng phép hợp giải SLD đối với đích G và khi bắt gặp một nguyên
Trang 34tố phỏng đốn p* khơng thuộc tập các giả thiết phỏng đoán hiện tai A thì nó được thêm vào A và pha nhất quán sau đây sẽ được xử lý
e Pha nhất quán: Pha này được thực hiện để kiểm tra ràng buộc toàn vẹn dạng pAP"
không bị vi phạm Dé lam điều nay, thu tuc sé kiém tra p co thất bại hữu hạn
Nếu trong suốt pha nhất quán, một nguyên tố phỏng đoán khác g* được tìm
thấy không thuộc A thì tiến hành pha phỏng đoán khác bắt đầu từ gq dé kiểm
tra ràng buộc toàn vẹn đ V q* Ví dụ 3.1 Xem xét chương trình logIc sau: P: p<“¬dq q<=¬P va dich G= < p Áp dụng định nghĩa 3.1, ta chuyển chương trình logic P thành chương trình logic phỏng đoán <P*, 4*, JC®>, trong đó: PS peg IC™ p, p*—>; pV p* A*={Pp* 4®) q<—p* q 4” =>; qV q* Áp dụng phương pháp EK, bắt đầu từ đích G = «— p và khởi đầu tập giả thiết phỏng đoán Ao= Ø
Phương pháp EK thành công với câu trả lời A = {đg*} cho đích Ớ = < p va hoạt động của EK được minh họa ở hình vẽ sau đây, trong đó giai đoạn phỏng đoán được biểu diễn với các hộp viên đôi và giai đoạn nhât quán với các hộp viên đơn:
Trang 35<P “4 A={g*} <—4q ch A=idi «=P 1 Oo a Oo
Hình 3.1 Tính câu trả lời cho đích G = — p
Kết quả ở trên nhận được từ việc sử dụng A trong suốt quá trình tính toán: ở hộp bên trong cùng, thủ tục thành công vì * đang thuộc tập A hiện tại và không cần có sự kiểm tra nào nữa Như vậy ø thất bại hữu hạn và cuối cùng ? ở hộp ngồi cùng thành cơng
Dé y rang tap {p, q*}, tirc la tap {p, not g} biểu điễn mô hình bền vững đuy nhất của P chứa p
Nếu xét bắt đầu đích Ớ = « ạø Phương pháp cũng EK thành công với câu
tra loi A= {p*} cho dich G = < q va hoạt động của EK được minh họa ở hình vẽ
sau day:
Trang 36
Hình 3.2 Tính câu trả lời cho đích Ớ = — q Ví dụ 3.2 Xem xét chương trình loglc sau:
P: s<notp
p<notq q<notr
va dichG=< 5
Ta chuyên chương trình logic P thành chương trình logic phéng doan
Trang 37Ap dung phwong phap EK, bat dau tir dich G = < s va tap giả thiết phỏng đốn Ao = © Phuong phap EK thanh công với câu trả lời A = { p*, r*}, hoạt động của EK được minh hoa 6 hình vẽ 3.3 đưới đây Trong phương pháp EK, sử dụng A trong suốt quá
trình tính toán, ở hộp bên trong cùng, thủ tục thất bại hữu hạn vì z* hiện tại đang thuộc A và không cần có sự kiểm tra nào nữa, như vậy r* thành công, g* thất bại hữu
hạn và cuối cùng s ở hộp ngồi cùng thành cơng A=Ø <s
Hình 3.3 Tính câu trả lời cho đích Ớ = < 5
Phương pháp EK có hạn chế là việc chọn nguyên tố trong đích cần phải là nguyên tố nền Điều này có thể khắc phục bằng phương pháp KM sau đây
Trang 383.2 PHUONG PHAP KM
Phương pháp KM [7] tổng quát hóa của phương pháp EK Chương trình logic phỏng đoán mới đối với thủ tục KM là:
<P* A*UA,IC*UIC>
trong đó 4 và JC là những thành phần mới theo khuôn khô đối với thủ tục EK và một ràng buộc trong 7C phải có ít nhất một nguyên tổ phỏng đoán trong phần thân của nó Vi du 3.3 Xem chương trình logie phỏng đoán sau:
P*.seca IC:ap IC*:p p*->; pVp* A = {a, b}
Trang 39<5 <a A=fa}\ <a* “” cq* "8 <b A=Sa,b} 7" = Oo a = n
Hình 3.4 Tinh cau tra loi cho dich G= <
Phương pháp KM sau khi phỏng đoán z, nó kiểm tra tất cả các ràng buộc có
chứa a: đầu tiên nó kiểm tra sự thất bại hữu hạn của z* và sau đó nó tiếp tục kiểm tra
đối với p mà lần lượt cần phỏng đoán ở trong việc chứng minh thất bại hữu hạn 3.3 PHƯƠNG PHÁP SLDNFA
SLDNFA là mở rộng của phép hợp giải SLD Khác với phép hop giai SLD — chỉ cho phép trả lời câu truy vấn đối với chương trình logic, SLDNEA có thể trả lời câu truy vấn đối với chương trình logic phỏng đoán
Trong phần này, ký hiệu P2 là chương trình logie phỏng đoán trên bộ ký tự 3
>? c là tập các vị từ của Ề” Tập con 1 của 3? được gọi là tập vị từ phỏng đoán Các
vị từ khác trong >'P\ 4 được gọi là vị từ khơng phỏng đốn
Trang 403.3.1 Các tính toán cơ sở của SLDNEA
Một tính toán SLDNFA có thể được hiểu là một quá trình dân xuất các công
thức V(Oo < ©) véi truy van ban diu — Qo va ® bao gồm hai loại truy vấn chưa được hợp giải:
- Đối với truy vẫn Ó, một dẫn xuất vẫn cần được tính toán (trong phần tiếp theo, ta gọi là một uy vấn đương), ® chứa một cơng thức Ó (hội của cac literal trong Q) - Đối với truy vấn — Ó, một cây thất bại vẫn cần được xây dựng (trong phần tiếp theo, ta gọi la truy van âm), ® chứa một công thức mở VỀ < Q với X là tập con của
các biến của Q
SLDNFA chọn các truy vấn dương hoặc âm chưa được hợp giải — Q và các literal trong — Ó và viết lại những truy vấn này tùy thuộc vào loại của phép chọn Những thao tác viết lại này có thể được hiểu là các bước chứng minh trên ® Phép hợp giải được áp dụng trên các nguyên tố khơng phỏng đốn được chọn trong các truy vấn dương và âm Các literal âm bị xóa khỏi các truy vấn đương và được thêm vào như các truy vấn âm và ngược lại, cũng giống như trong SLDNEA Các nguyên tố phỏng đoán trong các truy vấn dương không bao giờ được chọn: chúng được xem như các nguyên tố dư thừa Các nguyên tố phỏng đoán được chọn trong các truy van âm được hợp giải với nguyên tố dư thừa trong các truy vẫn dương
Chú ý rằng ® bao gồm hai loại biến: biển đương và biến âm Các biến trong các truy vấn trong một dẫn xuất là biến dương hay biến âm phụ thuộc vào cách mà chúng được đưa vào trong dẫn xuất Các biến đương là các biến của truy vấn ban đầu o hoặc là các biến của các mệnh đề chương trình được dùng đề hợp giải với các truy vấn dương Các biến âm là các biến của các mệnh để chương trình được đùng đề hợp giải với những truy vấn âm
Sau đây sẽ mô tả hình thức về các khái niệm cơ sở của phương pháp SLDNEA
Định nghĩa 3.3 (Đánh dấu) Một phép đánh đấu ø là một hàm từ tập hợp các biến
của bộ ký tự Ề; vào tập hợp {+,—} Cho một phép đánh dấu ø, một biến X được đánh