BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
PHAN THỊ THANH THOẢNG
TÌM HIỂU NGỮ NGHĨA CHƯƠNG TRÌNH
LOGIC DANG TUYEN CO THU TU
CHUYEN NGANH: KHOA HOC MAY TINH MA SO: 60.48.01.01
LUAN VAN THAC SI KHOA HOC ĐỊNH HƯỚNG ỨNG DỤNG
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS TRƯƠNG CÔNG TUẦN
Thừa Thiên Huế, 2018
Trang 2
(iv) Hang thire chỉ được sinh ra bởi các quy tắc trên
Định nghĩa 1.3 (Nguyên tố, literal) Cho 4 bộ ký tự và 7 là tập các hạng thức trên A
1 Nếu p là ký hiệu vị từ z-ngôi trong 44 và í\, ., ƒ„ là các hạng thức thuộc 7 thì púứn , f„) được gọi là một nguyên tổ
2 Một nguyên tố p được gọi là một //eral đương và phủ định của nguyên tố,
ký hiệu ¬p, được goi la literal dm
Nguyên tố/hạng thức không chứa biến được gọi là nguyên tố/hạng thức nền và literal nền là literal được xây dựng từ nguyên tổ nền
Vi dụ 1.1 Xét các vị từ man va wife, trong do man la vi tt 1-ngdéi va va wife la vi tr 2-ngôi, ký hiệu X, Y là các biến Lúc đó, man(X) là nguyên tổ để chỉ X là một đàn ông, wÿe(Y,X) là nguyên tố để chỉ Y là vợ của X ¬ man(X), ¬wje(Y,X) là các literal âm,
Định nghĩa 1.4 (Công thức) Cổng /hức được định nghĩa đệ qui như sau: ()_ Mỗi nguyên tố là một công thức,
đi) Các hằng vi tir true và ƒaise là các công thức,
(iii) Néu E va Ƒ là các công thức thì: ( A ), ¬Œ) (Ev F), (E<F), (E> Ƒ') là các công thức, (iv) Néu Ela công thức và X là một biến thì VX (E), ÄX(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 Ví dụ 1.2 Xét các công thức sau: VX (VY (doves(X,Y) <— mother(X) ^A chia øƒf(YX))) (1) mother(mai) A child_of(hoa,mai) (2)
Trang 3LOI CAM ON
Trước tiên, tôi xin gửi lời cảm ơn chân thành nhất đến PGS.TS Trương Công
Tuấn, người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điểu kiện thuận lợi cho tôi
trong suốt quá trình nghiên cứu Xin cảm ơn tất cả các quý Thầy, Cô đã truyền đạt
kiến thức cho tôi trong suốt quá trình học tập tại trường Đại Học Khoa Học, Đại
Học Huế
Xin được bày tỏ lòng biết ơn sâu sắc đến toàn thể gia đình, bạn bè đã luôn động viên, khích lệ tinh thần để tôi có đủ nghị lực hoàn thành luận văn
Thừa Thiên Huế, tháng 8 năm 2018 Tác giả
Phan Thị Thanh Thoãấng
Trang 4MỤC LỤC
0900.90.0900 3 i
10) 67 WY 0) A." -” '^"- ii
MUG AIG wsevsescvcoseseasenenereeveriecereacesanevencieescraxeereaxesaneuenneesnir crannies iii
DANE MUC GA CHINE V Reecccessssensnsy secenereerecnnoen seeeenrerenmermeenenunneniess iv
DANH MUC CAC THUAT NGU oo.cececccecccscssssssscsssssssssseesesecscseseessecescseesescecenens V
DANH MỤC CÁC KÝ HIỆU 5Ÿ 52 S22 St S+2E‡E£teEeEtEeEsesteserrrsrers vi hi vớnn, 1 CHUONG 1 TONG QUAN VE CHUONG TRINH LOGIC DANG TUYEN 3 1.1 MỘT SÓ KHÁI NIỆM CƠ SỞ 2 2 222221222112121221222 te 3 1.2 CHUONG TRINH LOGIC DẠNG TUYỂN -2222222222222226 5
1.3.NGỮ NGHĨA CHƯƠNG TRINH LOGIC DẠNG TUYỂN 9
1.4 TIỂU KẾT CHƯƠNG l 2 S2252222122111212121212122222122 2x6 12 CHƯƠNG 2 CHƯƠNG TRÌNH LOGIC DẠNG TUYỂN CÓ THỨ TỰ 13 2.1 CHUONG TRINH LOGIC DẠNG TUYỂN CÓ THỨ TỰ 13 2.2 TẬP TRẢ LỜI CỦA LPOD 5-22 222512112212121121212212122 2e 14 2.3 TẬP TRẢ LỜI ƯU TIÊN CỦA LPOD -.- 2222 222225222252522522221224 17 2.4 TÍNH CÁC TẬP TRẢ LỜI ƯU TIỀN .- 2222 2222252222552255222524 21 2.5 TIỂU KÉT CHƯƠNG 2 2-5222 S2212111211122121211211222 22s 26
CHƯƠNG 3 ỨNG DỤNG CỦA CHƯƠNG TRÌNH LOGIC DẠNG TUYỂN
Trang 5DANH MỤC CÁC HÌNH VẼ
Trang
Hình 2.1 Bộ kiểm tra thứ tự ưu tiên Pareto Tụ, 5222 2222222222222 222tr 24
Hình 2.2 Bộ kiểm tra thứ tự ưu tiên tiêu chuẩn Tị -25+2EE E122 cEzrrtee 24 Hình 2.3 Bộ kiểm tra thứ tự ưu tiên bản số T,, -2- 22222 211211112112 ererrrre 25 Hình 2.4 Bộ kiểm tra thứ tự ưu tiên-p được sửa đổi 2222 222222226 26 Hình 3.1 Kiến trúc Psmodels - 2-2222 222222122212221122121121121121222 xe 28
Hình 3.2 Kết qua.thuechién bar toa 3) lenses co .g ạẠ,—,Ợ,7„ÿ„77⁄Ỷ 29 Hinh 3.3 Két quả thực hiện bài toán 3.2 - c1 t1 1 nhe 33 Hình 3.4 Kết quả thực hiện bài toán 3.3 -c St t1 nhe 35 Hình 3.5 Kết quả thực hiện bài toán 3.4- S2: St Snnhehnrrrererreerre 37 Hình 3.6 Kết quả thực hiên Bài toán 324 scesrsosstrindttoiiitsorotititiiit4gonitigfgagitdta 37
Trang 6DANH MỤC CÁC THUẬT NGỮ
Chương trình logic
Chương trình loglc dương
Chương trình logic thông thường Chương trình logic dạng tuyên
Chương trình logic dạng tuyên có thứ tự Cơ sở Herbrand Điểm bất động nhỏ nhất Hạng thức Literal âm Mệnh đề Mệnh đề đơn vị 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 Nguyên tố Phủ định mạnh Quy tắc Hiện hành nền Thể hiện Vũ trụ Herbrand Logic program
Positive logic program Normal logic program Disjunctive logic program
Trang 7DANH MỤC CÁC KÝ HIỆU
P Chuong trinh logic
Bp Cơ sở Herbrand của chương trình P At(P) Tập các nguyên tố của P
Lit(P) Tap cac literal cia P
2? Tap con của cơ sở Herbrand Bp pM Thu gon cua P theo M
Tp Toán tử hệ qua trực tiếp
Up Vii tru Herbrand cua chuong trinh P
Trang 8MỞ ĐẦU
Chương trình logic dạng tuyển giải quyết các bài toán bằng cách sử dụng logic hình thức Các bài toán được biểu diễn đưới đạng một tập các quy tắc suy luận và dựa trên các quy tắc này để tìm ra tập trả lời cho bài toán Đã có rất nhiều cách tiếp cận khác nhau đề xác định ngữ nghĩa của chương trình này Một trong số những tiếp cận rộng rãi và được nhiều người biết đến đó là ngữ nghĩa mô hình bền vững (còn gọi là tập trả lời) được để xuất bởi Gelfond and Lifschitz Mô hình bền vững được xem như một công cụ để cung cấp ngữ nghĩa cho các chương trình logic có chứa phủ định và đã tỏ ra rất thích hợp cho nhiều lĩnh vực ứng dụng,
chẳng hạn các bài toán về cấu hình sản phẩm, lập kế hoạch,
Một số lượng lớn các bài toán được giải quyết bằng việc sử đụng chương trình logic dạng tuyển thông thường với ngữ nghĩa tập trả lời, nhưng đôi khi bài toán có một số điều kiện mà một chương trình logic dạng tuyển bình thường phải mất nhiều quy tắc để có thể biêu điễn được hoặc không thể biểu diễn được Do đó việc mở rộng các phép liên kết mới với phép tuyển có thứ tự cho phép chúng ta diễn tả các lựa chọn thay thế, xếp hạng các lựa chọn đề giải quyết van dé [2]
Chương trình logic đạng tuyển có thứ tự hữu ích cho các ứng dụng thực tiễn và có thể làm cơ sở cho việc ra quyết định có chất lượng [2]
Luận văn tập trung nghiên cứu về “Tìm hiểu ngữ nghĩa chương trình logic dạng tuyển có thứ tự” nhằm góp phần quan trọng trong việc giải quyết một số bai toán tối ưu phức tạp và những ứng đụng trong thực tế
Cấu trúc nội dung luận văn gồm phần mở đâu, ba chương nội dung, phần kết luận và hướng phát triển của đề tài
Trang 9Chương 2 sẽ trình bày về cú pháp và ngữ nghĩa của chương trình logic dạng tuyển có thứ tự (LPOD) - là sự mở rộng của chương trình logic dạng tuyển dưới ngữ nghĩa tập trả lời đã để cập trong chương 1 Ngữ nghĩa của LPOD dựa trên một
quan hệ ưu tiên trên các tập trả lời
Chương 3 trình bày những ứng đụng của chương trình logic dạng tuyên có
thứ tự vào một số bài toán cụ thể Cài đặt và thực thi các bài toán ứng dụng bằng
phần mềm hệ thống Psmodels
Trang 10CHƯƠNG 1
TONG QUAN VE CHUONG TRINH LOGIC DANG TUYEN
Chương này sẽ trình bày các khái niệm cơ sở về chương trình logic dang tuyển cùng với các tiếp cận ngữ nghĩa của lớp chương trình này Đây là những kiến thức cơ bản làm tiền đề để nghiên cứu trong các chương tiếp theo
1.1 MOT SO KHAI NIEM CO SO
Định nghĩa 1.1 (Bộ ký tự) Bộ ký ñ bao gồm các lớp những ký hiệu sau: 1 Hằng, thường ký hiệu bởi các chữ cái thường, ví dụ ø, 5, e,
2_ Biến, thường ký hiệu bởi các chữ cái in hoa, ví dụ X, P, Z ,
3 Ky hiéu hàm, thường ký hiệu bởi các chữ cái thường, ví dụ ƒ, ø, ñ, , 4 Ký hiệu vị từ, thường ký hiệu bởi các chữ cái thường, ví dụ p, q, 7 ,
5 Hằng vị ti: true, false
6 Ký hiệu kết nối: ¬(phủ định), v (tuyển), ^ (hội), < (suy ra), ©> (nếu và chỉ nếu)
7 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 (gọi là ngồi) để xác định số
thành phần của vị từ Mỗi ký hiệu hàm cũng gắn liền với một số tự nhiên (cũng gọi là ngôi) để xác định số các tham số của hàm
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 41 là bộ ký tự Hạng hức được định nghĩa đệ qui như sau:
()_ Mỗi hằng trong 44 là một hạng thức (ii) Mỗi biến trong 44 là một hạng thức
(iit) Néu fla ky hiéu ham n-ng6i trong A va f,, ,t, 1a cdc hang thre thi f(4, ,f,)
Trang 11(iv) Hang thire chỉ được sinh ra bởi các quy tắc trên
Định nghĩa 1.3 (Nguyên tố, literal) Cho 4 bộ ký tự và 7 là tập các hạng thức trên A
1 Nếu p là ký hiệu vị từ z-ngôi trong 44 và í\, ., ƒ„ là các hạng thức thuộc 7 thì púứn , f„) được gọi là một nguyên tổ
2 Một nguyên tố p được gọi là một //eral đương và phủ định của nguyên tố,
ký hiệu ¬p, được goi la literal dm
Nguyên tố/hạng thức không chứa biến được gọi là nguyên tố/hạng thức nền và literal nền là literal được xây dựng từ nguyên tổ nền
Vi dụ 1.1 Xét các vị từ man va wife, trong do man la vi tt 1-ngdéi va va wife la vi tr 2-ngôi, ký hiệu X, Y là các biến Lúc đó, man(X) là nguyên tổ để chỉ X là một đàn ông, wÿe(Y,X) là nguyên tố để chỉ Y là vợ của X ¬ man(X), ¬wje(Y,X) là các literal âm,
Định nghĩa 1.4 (Công thức) Cổng /hức được định nghĩa đệ qui như sau: ()_ Mỗi nguyên tố là một công thức,
đi) Các hằng vi tir true và ƒaise là các công thức,
(iii) Néu E va Ƒ là các công thức thì: ( A ), ¬Œ) (Ev F), (E<F), (E> Ƒ') là các công thức, (iv) Néu Ela công thức và X là một biến thì VX (E), ÄX(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 Ví dụ 1.2 Xét các công thức sau: VX (VY (doves(X,Y) <— mother(X) ^A chia øƒf(YX))) (1) mother(mai) A child_of(hoa,mai) (2)
Trang 12Trong các công thức, người ta thường chú ý đến công thức đóng, ta có định nghĩa:
Định nghĩa 1.5 (Công thức đóng) Công thức đóng là công thức không chứa biến
tự do
Vi du 1.3 Xét công thức VY 3X (p(Y,Y) A q(})), các biến X, Y là những biến rang buộc vì vậy đây là công thức đóng, trong lúc đó công thức 3X (ø(X,Ÿ)Aq(X)) không phải là công thức đóng, vì Y là biến tự do
Công thức/hạng thức không chứa biến được gọi là công thức/hạng thức nền
Cha y: Nếu Xj, X; Xạ là các biến xuất hiện trong công thức #' thì 1X13ÄX; Ấn
(F) duoc ký hiệu là 3# Tương tự VX¡VX; VXa (F) được ký hiệu là V 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
Vi du 1.4 Céng thire VX VY (p(X) < qŒ)) được viết là pCY) — qŒ')
Định nghĩa 1.6 (Ngôn ngữ bậc nhất) Một ngén ngit bac nhat bao gdm 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 LOGIC DANG TUYEN
Định nghĩa 1.7 (Mệnh đề logic dạng tuyển) Một mệnh đê logic dang tuyén la céng thức có dạng:
av Va,—b,, , by, not bay, not b,, (1)
trong dd n21,m2k20,a; (i= 1, ,n) vabG=1, , m) la cac nguyén tố, dấu
phẩy trong (1) thay cho ký hiệu của phép hội (A), đi v v z„ là phần đầu va by,
.„ Ủy, not Öy¿¡, , not ð„ là phan than cua quy tac Néun= 1 vak=m=0 thi (1) con duoc goi la mot su kién (fact)
Vi du 1.5 Cho CSDL, 4, t va #3 la các hằng, X là biến, mon hoe là vị từ một ngôi và hoc ngay là vị từ 2-ngôi, trong đó mon hoc(X) có nghĩa X là môn học, hoe_ngay(X,V) có nghĩa môn học X được học vào ngày thứ Y Xét các mệnh để sau:
mị mon _hoc(CSDL) <—
Trang 13Trong các mệnh đề này, r¡ là một sự kiện để chỉ CSDL là một môn học, 7s là một mệnh dé logic dạng tuyển và có ý nghĩa là: “Môn học X được học vào một
trong ba ngày í, í; hoặc /;”
Cho z là một mệnh đề có đạng (1) Ký hiệu :
A(r) = {an, , a„} là tập các nguyên tố trong phan đầu của 1,
BỶớ)= {fhị b„} là tập các literal dương xuất hiện trong phần thân của 7,
B (r) = {not ð¿.¡, , not Ö„} là tập các literal âm xuất hiện trong phần thân của r,
BƠ) = BÌ0ứ) © B 0) là tập các literal trong phần thân của r
Định nghĩa 1.8 (Chương trình logic dạng tuyển) Chương trình logic dang tuyén
là một tập hữu hạn các mệnh đề logic dang tuyển
Chương trình logic đạng tuyển không có ký hiệu phủ định được gọi là một chương trình logic dạng tuyển đương
Ví dụ 1.6 Xét chương trình logic dạng tuyến dương gồm các mệnh đề sau đây: Cho P, 1a chương trình Datalog :
parentOf(a, b) <—
r: ancestorOf(X, Y) <parentOf(X, Y)
ry ancestorOf(X, Y) <parentOf(X, Z), ancestorOf(Z, Y) r; : fatherOf(X, Y) v motherOf(X, Y) <parentOf(X, Y)
Ménh dé r¡ có nghĩa: Nếu X là bố/mẹ của X thì X là tổ tiên Ƒ
Mệnh đề z; có nghĩa: Nếu X là bố/mẹ của Z và Z là tô tiên của Y thì X là tô tiên
của Ÿ
Mệnh đề 7; có nghĩa: Nếu X là bố/me của Y thì X là bố của Y hoặc X là mẹ của
Su kién parentOfla, b) có ý nghĩa a là bố/me của 5
Định nghĩa 1.9 (Vũ trụ Herbrand/Cơ sở Herbrand) Cho ? là một chương trình logic dạng tuyển
1 Vũ trụ Herbrand của P, ký hiệu Up, la tap tất cả các hằng của P
Trang 14dự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ụ 1.7 Xét chương trình logic dạng tuyên P gồm các mệnh dé sau: r{1)<©— 2)<©— p@) v 4Œ © r@) s(X) < 1(X), not 0X) Taco: e Vũ trụ Herbrand của P la: Up= {1,2} e Cơ sở Herbrand của ? là : Bp = tr), 72), PC), PZ), 4) a2), 51), s(2)}- Ví dụ 1.8 Cho P là chương trình logic dang tuyển gồm các mệnh đề sau: g(a) — p() vpÈ) <— Khi đó:
Vũ trụ Herbrand của ? là: p = {a, b}
Cơ sở Herbrand của P là: Øp= { p(a), p(b), q(2) q(P)}
Định nghĩa 1.10 (Thể hiện Herbrand) Cho P là một chương trình logie 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
Ví dụ 1.9 Xét chương trình logic dạng tuyển P ở ví dụ 17 Một số thể hiện Herbrand cua P la:
T= tr), r@2), pC}
I, = tr), r2), pC) a2), s(1)} J; = {r(1), r(2), p(2), gq), s(2)}
Trang 15Ta sử dụng ký hiệu Growna(P) để chỉ tập tất cả các hiện hành nên của các mệnh để xuất hiện trong P
Vi du 1.10 Xét chương trình logic dạng tuyển P 6 vi du 1.7 Lúc đó chương trình
Ground(P) nhận được từ P sau khi thay thế tất cả các đối của các vị từ bởi các hằng 1 và 2 là: r{1)<©— 2)<©— pd) v4) r() s(1) <— r(1), not (1) p2) v g(2) © r0) s2) <— 71(2), not g(2)
Dinh nghia 1.12 Cho P la mot chuong trinh logic dang tuyén va J la mét thé hién Herbrand của P Ta nói rang literal drong nén A 1a ding (tuong tng sai) trong J néu A eI (trong tng A ¢ J), literal 4m nén GA la ding (tuong tng sai) trong I néu A ¢ ï dương ứng 4 e J)
Định nghĩa 1.13 Cho P là một chương trình logic dạng tuyển và 7 là một thể hiện
Herbrand của P Một mệnh đề r e Ground(P) là dung 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 B80) là sai trong 1
Định nghĩa 1.14 (Mô hình Herbrand) Cho P là một chương trình logic 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 mệnh đề r ¢ Ground(P) la đúng trong J
Trang 16Định nghĩa 1.15 (Mô hình cực tiểu) Cho P là một chương trình logic dạng tuyển
dương Mô hình 1⁄ 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 V
nào khác của P sao cho c Ä⁄Z Nếu mô hình cực tiêu của P là đuy nhất thì nó cũng
được gọi là mô hình nhỏ nhất của P
Ví dụ 1.13 Xét chương trình logic đạng tuyển P gồm các mệnh đề sau : avbe cea Chương trình logic dang tuyén P này có 4 mô hình là: M, = {5}, M, = {a, c}, My; = {b, c}, M, = {a, b, c} Vì Mĩ CÁ; c M¿ và Míạ c Mạ, nhưng 3“ € M; và ÄZ; € M, Do do P co hai md hình cực tiểu là Mạ và À2
1.3 NGỮ NGHĨA CHƯƠNG TRÌNH LOGIC DẠNG TUYỂN
Phần này trình bày ngữ nghĩa của chương trình logic dạng tuyển Các chương
trình logic 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 logie dạng tuyển là khả năng mô hình hóa tự nhiên các tri thức không đầy đủ Trước khi đi vào ngữ nghĩa chương trình logic dạng tuyển, ta xét ví đụ sau:
Ví dụ 1.14
Xét hiện trạng sau:
“Ta vừa thấy anh An có một cánh tay bị gấy nhưng ta lại không nhớ là tay nào Nhưng ta lại biết rằng An viết bằng tay trái Vì thế An có thể viết được nếu tay trái anh ta không gay.”
Câu hỏi đặt ra là An có thê viết được hay không?
Trang 17viết”, và (b) “Tay phải của An bị gãy và anh ta có thể viết được”,
Trong ngôn ngữ của các chương trình logic dạng tuyển, hiện trạng này được
mô tả dưới dạng các mệnh đề:
r;: la_broken v ra_broken — rz, can_write < not la_broken
Ngữ nghĩa của chương trình logic dạng tuyển P¿„ chứa các mệnh để r¡ và rs
được đưa ra bởi hai mô hình sau:
M, = { la_broken, not ra_broken, not can_write} M, = { ra_broken, not la_broken, can_write }
M, va M, la hai kich ban cé thé xay ra và nó tương ứng chính xác với hai khả nang da chi ra
Sự hiện diện của dạng tuyển trong phần đầu của mệnh dé đã làm cho chương trình logic dạng tuyên khá phức tạp (nghĩa là thông tin mới có thể làm mất hiệu lực các kết luận đưa ra) Nhiều tác giả đã nghiên cứu các tiếp cận ngữ nghĩa của chương trình logic dạng tuyển, trong đó một tiếp cận ngữ nghĩa được chấp nhận rộng rãi — ngữ nghĩa tập trả lời được để xuất bởi Gelfond and Lifschitz [6] Ngữ nghĩa này được xác định bằng phép biến đổi chương trình logic dạng tuyển P ban đầu theo một thê hiện 7 cho trước thành chương trình logic dạng tuyển đương PỄ Ta có các định nghĩa hình thức sau:
Định nghĩa 1.16 Cho P là một chương trình logic dạng tuyển và 7 là một thể hiện của P PÏ là chương trình nhận được từ grozwa(P) sau khi thực hiện các phép biến
đôi:
() Loại bỏ tất cả các mệnh đề z ¢ Ground(P) cé literal 4m not B trong thân
của nó với B € J, va
(1) Loại bỏ các literal âm trong thân của các mệnh dé còn lại
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 mệnh
để 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 mệnh để còn lại cũng được bỏ đi 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 logic dạng tuyên dương
Trang 18Định nghĩa 1.17 [1] (Tập trả lời) Một thê hiện 7 của chương trình logic dạng tuyển
P được gọi là /ập tra loi cia P nếu 7 là một mô hình cực tiểu của chương trình
logic dạng tuyển đương P”
Định nghĩa 1.18 [1] (Ngữ nghĩa của chương trình logic dạng tuyển) Wgữ nghĩa của chương trình logic dang tuyén P duoc xác định bởi tập các tập trả lời của P, ký hiéu ANS(P)
Ví dụ 1.15 Xét chương trình logie dạng tuyên P gồm các mệnh dé sau: avb<notc
c < a,notb
Cơ sở Herbrand của P là: B, = { a b, c}
Vậy ta có 8 thể hiện Herbrand của P:
I, = ©, In = {a}, I, = {b}, 1, = {ce},
I; = {a, b}, Is = {a, c}, I, = {b, ch, lạ= {a, b, c}
Các chương trình nhận được sau phép biến đổi chương trình P đối với các thé
hiện Herbrand là:
Pi =favbe,ce a}, Po = favbe,ce ah,
P= {av be}, PY = {c ah,
Pb =favb<}, Ph = {ca},
Ph=Ø, Ph =Ø
Các tập mô hình cực tiểu tương ứng của các chương trình nhận được ở trên là:
Trang 19L= {b, c} ¢ MMP") Ig= {a, b, c} € MMP”) Vậy ngữ nghĩa của chương trình logic dang tuyén P la tap ANS(P) = {{b}}
1.4 TIEU KET CHUONG 1
Chương một đã trình bày các khái niệm cơ sở liên quan đến ngôn ngữ logic bậc nhất và cú pháp của chương trình logic đạng tuyển Ngữ nghĩa tập trả lời của chương trình dạng tuyển được trình bày chỉ tiết Trong chương hai tiếp tục nghiên cứu việc mở rộng chương trình logic dạng tuyển bằng cách đưa vào phép toán mới gọi là phép tuyển có thứ tự
Trang 20CHƯƠNG 2
CHƯƠNG TRÌNH LOGIC DẠNG TUYỂN CÓ THỨ TỰ
Chương 2 sẽ trình bày về cú pháp và ngữ nghĩa của chương trình logic dạng tuyển có thứ tự (LPOD) - là sự mở rộng của chương trình logic dạng tuyển dưới ngữ nghĩa tập trả lời đã để cập trong chương 1 Ngữ nghĩa của LPOD dựa trên một
quan hệ thứ tự ưu tiên trên các tập trả lời
2.1 CHƯƠNG TRÌNH LOGIC DẠNG TUYỂN CÓ THỨ TỰ
Chương trình logic dạng tuyên có thứ tự (LPOD) chứa một phép kết nối mới,
gọi là phép tuyển có thứ tự, ký hiệu x, biểu diễn các chọn lựa được sắp xếp thứ tự
và chỉ cho phép xuất hiện trong phần đầu của các quy tắc: 4 x có ngữ nghĩa trực quan là nếu có thê được thì A, nhưng nếu A là không thể thì í† nhất là B
Ví dụ khi xem xét các sở thích để đặt một khách sạn cho một hội nghị Giả sử lựa
chọn được ưa thích nhất là khoảng cách đi bộ từ địa điểm tổ chức hội nghị đến
khách sạn, lựa chọn tốt nhất thứ hai là có phương tiện chuyên chở do khách sạn
cung cấp, lựa chọn thứ ba là phương tiện giao thông công cộng Điều này có thê
được biểu diễn như sau:
walking X hotel_transport X public_transport
Từ việc mô tả của các khách sạn có sẵn, phép tuyển biểu diễn một trong các
khách sạn có thể được chọn, công thức trên có thể chọn ra được khách sạn thỏa mãn
tốt nhất các sở thích đã cho
Định nghĩa 2.1 [2] (Chương trình logic dạng tuyến có thứ tự - LPOD) Chương trình logic dạng tuyên có thứ tự bao gồm các quy tắc có dạng:
Cìịx xC„‹€C4l, ,4„ notị, , not ¿ trong do cac C;, A; và B,là các literal nén
Cách đọc phần đầu quy tắc như sau: tốt nhất là C; có thể, nếu C¡ không thể thì
C¿, nếu tất cả cdc Cy , Cay 1a không thể thì C„ có thể Các literals C¡ được gọi
là những sự lựa chọn của quy tắc Các chương trình logic mở rộng là một trường hợp đặc biệt của LPOD khi ø= 1 đối với tất cả các quy tắc
Trang 21Khi m = 0 và &= 0 thì ta bỏ qua —, lúc đó ta gọi quy tắc là một sự kiện
Ta nói rằng một gwy fắc là thỏa mấn nếu có một trong các literal C, là đúng hoặc một literal nào đó trong thân là sai Ký hiệu 47) và 7P) biểu diễn lần lượt tập các nguyên tố và tập các literal trong LPOD P
2.2 TẠP TRẢ LỜI CỦA LPOD
Do phép tuyên có thứ tự là một dạng ưu tiên đặc biệt của phép tuyển nên một ý tưởng tự nhiên để làm cơ sở ngữ nghĩa của LPOD là dựa trên ngữ nghĩa của Gelfond va Lifschitz đối với các chương trình logie dạng tuyển đã trình bay trong chương 1
Vấn đề là các tiếp cận ngữ nghĩa đối với các chương trình logic dạng tuyển đã được xây dựng có tính cực tiểu Trong cách tiếp cận của Gelfond và Lifschitz thì
các tập trả lời là tập cực tiểu: nếu ð; và 5 là các tập trả lời của một chương trình logic dang tuyén P va S\E S), thi S,; = S35
Tính cực tiểu không phải luôn được mong đợi đối với chương trình logic dang tuyển có thứ tự Chúng ta xem một LPOD đơn giản chỉ gồm hai sự kiện sau:
AxBxC BxD
Cách tốt nhất dé thỏa cả hai phép tuyên có thứ tự là làm cho 41 và Ø đúng, nghĩa là ta mong đợi {4, Ð} là tập trả lời được ưa thích duy nhất của LPOD đơn giản này Tuy nhiên, tập {44, 8} không phải là một tập trả lời của chương trinh logic dạng tuyển trong đó phép x được thay thế bởi phép v theo ngữ nghĩa của Gelfond và
Lifschitz vi 8 thỏa mãn cả hai sự kiện tuyển:
AvBvC BvD
Vì vậy, chúng ta phải sử đụng một ngữ nghĩa khác mà không phải là cực tiểu Trong phan sau sé trinh bày ngữ nghĩa của LPOD theo tiếp cận của Gerhard Brewka[{2]
Trang 22Định nghĩa 2.2 [2] (Tùy chọn thứ k của quy tắc) Gọi z= C¡ x x Cạ<— body la một quy tắc Với & < ø ta định nghĩa tùy chọn thứ È của r là:
r= body, not C;, , not Cy-y
Định nghĩa 2.3 [2] (Chương trình phân tách) Cho P là một LPOD P' là một chương trình phân tách của P nếu nó thu được từ P bằng cách thay thế mỗi quy tắc trong P bằng một trong những tùy chọn của nó
Ví dụ 2.1 Cho chương trình LPOD P bao gồm các quy tắc: AxB<notC (2) BxC<—notD (3) Ta có được 4 chương trình phân tách như sau: Py: Pị: 4 — not CC A—notC B<—notD C<—notD, not B P3: Py:
B<—not C, not A B<—notC, not A B<—notD C— not D, not 8
Các chương trình phân tách không chứa phép tuyên theo thứ tự
Định nghĩa 2.4 [2] (Tập trả lời) Cho ? là một LPOD Một tập các literal là một tập trả lời của P nếu nó là một tập trả lời nhất quán của một chương trình phân tách P” của P
Trong ví dụ trên chúng ta có 3 tập tra loi: £4, B}, {C}, {B} Lưu ý rằng một
trong các tập trả lời có thể là một tập con thực sự của một tập trả lời khác
Tuy nhiên, không phải tất cả các tập trả lời đều thỏa mãn các lựa chọn của chúng ta Rõ ràng, tập{44, Ð} cho chúng ta lựa chọn tốt nhất cho cả hai quy tắc, trong khi tập {C} chỉ cho phép lựa chọn tốt nhất thứ hai cho quy tắc (3) va tap {B} là lựa chọn tốt nhất thứ hai cho quy tắc (2)
Trang 23Có một cách khác để đặc trưng tập lời của LPOD bằng cách định nghĩa các / hẹp của LPOD mà không cần sử dụng các chương trình phân tách Ý tưởng chính là thu hẹp của một quy tắc;
r=Cị x xCạ<— body
với một tập literal X là một quy tắc:
C) — pre(r)
trong đó C; la nguyén tố có thứ hạng thấp nhất của phần đầu quy tắc có trong X và pre(') là tập hợp các Iiteral dương trong phần thân quy tắc Do đó, ta đùng mỗi quy tắc của chương trình để hỗ trợ nguyên tố được xếp hạng tốt nhất trong phần đầu của nó hiện diện trong tập trả lời ứng viên
Định nghĩa 2.5 [3] (Thu hẹp của LPOD) Cho quy tắc
r= Cịx x C„ <— A‡ A„, not Bị not Bị
va X 1a tập các literal Lúc đó thu hẹp của của r theo X, ký hiệu rễ được định nghĩa
như sau:
rỄ={Œ, — A\, A„ | C,EX và Xf{C;, C;;, Bạ, Bu}= Ø}
Cho P là một LPOD 7w hẹp của P theo X, ký hiệu Pễ được định nghĩa như sau:
BE =| |g
re€P
Mệnh đề 2.1 [3] Cho P là một LPOD và Š là tập các tap literal Luc dé S la tập trả lời của P nếu 8 là tập trả lời nhất quán của ĐỀ và Š thỏa các quy tắc của P
Trang 242.3 TẬP TRẢ LỜI ƯU TIÊN CỦA LPOD
Để phân biệt giữa các tập trả lời được mong đợi nhiều hay ít, ta có cần giới
thiệu khái niệm về mức độ thỏa mãn của một quy tắc trong một tập trả lời:
Định nghĩa 2.6 [3] (Mức độ thỏa mãn quy tắc) Cho S là tập trả lời của một LPOD P Luc dé S thỏa mãn quy tắc
Cìịx xC„— á, Âm, not\, , not By « đến mức Ì nếu A¡ £ 8, với J nào đó, hoặc B¡ e §, với 1 nào đó,
« đến mức j (1 <j <n) nếu tất ca A; € S, khong co B, € S, vaj = min{ r| C,€ S}
Vi du 2.3 Xem lai vi du về LPOD P đã trình bay 6 vi du 2.1:
Ax B<—notC (1) BxC<-notD(2)
Trong ví dụ trên chúng ta có 3 tập trả lời: {A, Ð}, {C}, {PB} Mức độ thỏa mãn các quy tắc của từng tập trả lời như sau:
Si=A1, B} thỏa mãn cả hai quy tắc với mức độ l;
S;={C} thỏa quy tắc (1) đến mức 1, nhưng quy tắc (2) đến mức 2; S;={B} thỏa mãn quy tắc (1) đến mức độ 2 và quy tắc (2) đến mức I
Mệnh đề 2.2 [3] Nếu 4 là tập trả lời của một LPOD P thì A thỏa mãn tất cả các quy
tắc của P đến một mức nào đó
Mức độ thỏa mãn có thể xem như điều khoản phạt: mức độ càng cao thì độ hài
lòng càng ít Nếu thân của một quy tắc không được thỏa mãn, thì không có lý do gì dé quy tắc là không được thỏa và quy tắc đạt được mức tốt nhất là 1 Ký hiệu mức độ thỏa mãn của quy tắc r trong S bởi đegs(7)
Các mức độ thỏa mãn của các quy tắc của một chương trình P là cơ sở cho
việc định nghĩa quan hệ ưu tiên trên các tập trả lời của P Có nhiều cách khác nhau để tạo ra một quan hệ ưu tiên Phần tiếp theo thảo luận 3 cách như vậy
Cách đầu tiên để định nghĩa thứ tự ưu tiên giữa các tập trả lời là dựa trên bản số của tập các quy tắc được thỏa mãn theo mức độ cụ thể nào đó Đối với một tập literal S, dat
Trang 25S{Œ)={reP |degs?)=
Ưu tiên dựa trên bản số được định nghĩa như sau:
Định nghĩa 2.7 [3] (Ưư tiên bản số) Cho 5; và Š; là hai tập tra loi cha LPOD P
Lúc đó §¡ có thứ tự ưu tiên bản số cao hơn S;, ký hiệu §¡ >¿ S5; nếu có ¡ sao
cho |S‡(P)| > |S¿(P)| và với mọi j <¡, |S;Œ)| = |SjŒ)|
Trong một số ứng dụng thì ưu tiên dựa trên bản số không cung cấp cách thức
tốt nhất Vì vậy ta xem xét cách thứ hai được định nghĩa như sau:
Định nghĩa 2.8 [3] (Ưu tiên bao hàm) Cho Š¡ và 5; là hai tập trả lời của LPOD P S; c6 thir tw wu tién bao ham cao hon S, (S; >; Sz) nếu có chỉ số k sao cho S#(P) C
SE(P) va véi moi j<k, S/(P) = SI(P)
Mặc dù ưu tiên dựa trên bao hàm là an toàn hơn so với ưu tiên dựa trên bản số
nhưng đôi khi nó lại thiếu an toàn Trong một số trường hợp khi thêm vào các ưu
tiên không đạt được sẽ thay đổi thứ tự ưu tiên của các tập trả lời
Ví dụ 2.4 Xem ví đụ sau về việc quyết định đối với các món tráng miệng: 1, : ice-cream * cake
F2 : coffee < tea
r;: — coffee, ice-cream
Ta co 2 tap tra loi wu tién la {ice-cream, tea} va {coffee, cake} Khéng co tap tra 101 nào trong 2 tập này vượt trội hơn cái kia bởi vì cả hai đều thỏa một quy tắc đến mức I và một quy tắc đến mức 2 Bây giờ thay r¡ bằng:
r’, : cookie = ice-cream = cake
và thêm sự kiện ¬cookie vào chương trình Lúc này chỉ có một tập trả lời ưu tiên
duy nhất là {co/&e, cake, ¬cookie} Bằng cách thêm vào một sở thích không mong mudn 1a cookie, cho thấy tập trả lời ưu tiên thứ hai là quan trọng hơn Để tránh trường hợp này ta sẽ sử dụng fiêu chuẩn tru tién Pareto
Trang 26Định nghĩa 2.9 [3] (Ưu tiên Pareto) Cho §¡, 8; là hai tập trả lời của LPOD P Tập S; co c6 thir tu wu tién Pareto cao hon tap So, ký hiệu S¡ >p 5; nếu có quy tắcr€P
sao cho đegS;(r) < đegSs(r) và không tôn tại r' € P thỏa degS,(r') > degS;(r')
Vi du 2.5 Xem xét về sở thích của một thực khách đến nhà hàng Thực khách thích ăn thịt hơn ăn thức ăn chay Trong trường hợp chọn thịt thực khách sẽ thích rượu
hơn nước khoáng, nếu không thực khách sẽ thích uống nước khoáng hơn rượu vang Các tùy chọn này có thể được mô hình hóa bằng chương trình logic đạng tuyên có
thứ tự P như sau :
r;: meat = vegetarian —
Fạ: wine =< water <— meat
13: water =< wine <— not meat
Chương trình có hai tập trả lời là S¡= {7meaf,wine} và Šz—{vegefarian,wafer} So sánh mức độ thỏa mãn của từng tập trả lời như sau: Quy tắc S; Ss, T1 degS\(1,)=1 đegSz{(r)=2 T2 degS(12)=1 degS(12)=1 13 degS,(13)=1 degS.(13)=1 Ta thay degS,(1,) < degS.(r,) và không tồn tai r’ € P thỏa degS,(r') > degS;(r') Vay S1>p So
Mệnh đề 2.3 [3] Cho S¡ §; là hai tập trả lời của LPOD P Nếu S, >, S, thi $,>; S
và S¡ >¡ S» kéo theo S¡ >, Sa
Định nghĩa 2.10 Một tap literal S la tap tra loi /Øên-k của LPOD P với k€ (c, p, i) Néu và chỉ nếu S là tập trả lời của P và không có tập trả lời S” của P sao cho S' >; S
Su khác nhau của các tiêu chuẩn ưu tiên có thể được minh hoa bằng cách sử dụng biến thể về sự ưu tiên của bài tốn tơ màu đồ thị Giả sử chúng ta thích các nút
Trang 27mau do hon các nút màu xanh dương và các nút màu xanh dương hơn các nút màu xanh lá cây Bài tốn tơ màu ưu tiên có thể được biểu diễn như sau:
col(X,red) x col(ÄX,blue) x col(X,green) < node(X) <— col(X,C), col(Y,C), node(X), node(Y), edge(X,Y), X#Y
Chung ta co thể mô tả thứ tự ưu tiên của các tập trả lời trong ví dụ, dựa một trong ba tiêu chí ở trên như sau: S được ưu tiên hơn S' nếu:
Đi ít nhất một nút có màu được ưu tiên hơn có trong S và không có nút nào có màu ít được ưu tiên hơn có trong S
Dị: các nút màu đỏ trong S' là một tập con thực sự của các nút màu đỏ
trong S, hoặc S và S' có cùng số nút màu đỏ và các nút màu xanh dương trong S' là
một tập con thực sự của các nút màu xanh dương trong S
De: số nút màu đỏ trong S nhiéu hon trong S' hodc sé nut mau dé trong S và S† là bằng nhau và nhiều hơn các nút màu xanh dương trong S
Với một tiêu chuẩn ưu tiên cụ thể &, ta nói một literal 7 là một kết luận của một
LPOD P nếu 7 có trong tất cả các tập trả lời #-ưu tiên của P Trong nhiều ứng dụng, mỗi tập trả lời ưu tiên biểu diễn cho một giải pháp với mức thỏa mãn tốt nhất
Định nghĩa 2.11 [3] (Thứ tự ưu tiên giữa các quy tắc )Với S¡, S; là hai tập trả lời của LPOD P > là quan hệ thứ tự ưu tiên của các quy tắc trong P S¡ có thứ tự ưu
tiên Pareto cao hơn so với 5z (S¡>p 8) nếu:
1 với r € P sao cho degS¡(r) < degS;(r)
Trang 28Ta co 2 tap tra lời ưu tiên la S\={ice-cream, tea} va S,={coffee, cake} Khong co tập trả lời nào trong 2 tập này vượt trội hơn cái kia bởi vì cả hai đều thỏa một quy tắc đến mức 1 và một quy tắc đến mức 2 Bây giờ giả sử chúng ta cho rằng ăn kem là quan trọng hơn uống cà phê, điều này được thể hiện rằng qui tắc rạ là ưu tiên hơn qui tắc z;: z > z¿ Dễ dàng thấy rằng lúc này tập trả lời 8; là tập trả lời ưu tiên hơn S2
Về nguyên tắc, có thê thể hiện sự ưu tiên giữa các quy tắc trong các chương trình và điều đó sẽ làm cho chúng phụ thuộc ngữ cảnh nhiều hơn Tuy nhiên, vì thông tin ưu tiên tùy chọn ưu tiên giữa các quy tắc dẫn đến kết quả là một phần của
tập trả lời được tạo ra nên cần phải can than dé không làm mất tính đối xứng Ví dụ, nếu chúng ta có: nia * 7a ry —đ X đ Ty >” 1T; —=q Tị > Tạ —ng
sau đó, từ quan điểm của từng tập trả lời, một tập trả lời trong số các tập trả
lời tìm được sẽ được ưu tiên Miễn là các tập trả lời khác nhau có sự khác nhau về
độ ưu tiên giữa các quy tắc
2.4 TÍNH CÁC TẬP TRẢ LỜI ƯU TIÊN
Chúng ta có thé tính toán các tập trả lời ưu tiên của một LPOD P bằng cách: trước hết tính các tập trả lời, sau đó thực thi hai chương trình sau đây:
- Chương trinh Generator G(P) dé tính các tập trả lời của P; và
- Chương trình 7es#er T(P, A⁄) đề kiêm tra xem một tập trả lời Ä⁄Z của P có phải là tập trả lời ưu tiên hay không
Hai chương trình được chạy xen kẽ nhau Trước tiên, Generafor tạo ra một tập
trả lời M của P Tiếp theo, Tester sẽ tìm một tập trả lời M' tốt hơn M Nếu không có
tập M' như vậy thì M là một tập trả lời ưu tiên Ngược lại, ta sử dụng G(P) để xây
Trang 29dựng tập ứng viên tiếp theo Khi ta chỉ muốn tìm một tập trả lời ưu tiên, ta có thé lấy M' làm ứng viên tập trả lời mới
Ý tưởng chính của G(P) là mã hóa tất cả các chương trình phân tách của P
thành một chương trình bằng cách thêm một sự lựa chọn tường minh trên các lựa chọn của mỗi phép tuyển có thứ tự Ta mã hóa sự lựa chọn bằng cách sử dụng các
nguyên tố mới có dạng c(z, &) để chỉ rằng ta sử dụng lựa chọn thứ & của quy tắc r
Để làm cho việc so sánh mô hình dễ dàng hơn, ta cũng thêm vào một tập các
nguyên tố mới, s(, &) để biểu thị rằng quy tắc z được thỏa mãn với mức độ #
Định nghĩa 2.12 [3| Cho P là một LPOD và r= C¡x Cạ <— body la mot quy
tắc trong P Lúc đó, phép chuyền đồi G(r, k) của lựa chọn thứ & của r được xác định
như sau:
Gứ,k) ={ Cy — c(r,k), not Cì, , not Cụ, body; (3)
<— C,, not c(r,k), not C), , not C;.;, body; (4)
Phép chuyển đổi thỏa mãn S() là:
S(r) = {sứ,l) — nof cự, l) , not e(r,n) } U (5)
{ s(7,) —e(r,i) | Isi<n} (6)
Phép chuyén đổi G(r) là:
ŒØ) = {1{eŒứ,1), ,c(r,n)}1 — body}U U{Gứ,k) |k <n} U Sứ) (7) Generator G(P) dugc định nghĩa như sau:
G(P) = U{GØ) |r e P} (8)
Trong định nghĩa Gữ), quy tắc
1{eŒ, 1), c(r,n)}1 — body
chỉ ra rang néu body la dung thi chinh xác một trong các nguyên tố c(z, &) là đúng Quy tắc này có thể xem như cách viết tắt cho ø cặp quy tắc có dạng:
cứ,k) — not ¬ec(r,k), body ac(r,k) — not c(r,k)
van? —n ràng buộc <— cf,i), c(r,j), i#j
Trang 30Vi vay, ly do có hai quy tắc trong G(r, &) có thê không rõ ràng, vì (3) đảm bảo rằng chỉ có các tập trả lời chính xác của chương trình phân tách Pˆ sẽ được tạo ra Bây giờ hãy xem xét tình huống mà một số C¡, với J < k, là hệ quả của một phần khác của chương trình Lúc đó, nếu không có (4) chúng ta có thể có một tập trả lời cứ, &)
là đúng, nhưng Cy là không vì do các khối C¡ (3) Nói cách khác, ta có thể chọn để thỏa mãn z đến mức #, nhưng nó thực sự sẽ được thỏa mãn đền mức J Quy tắc (4)
ngăn cản hành vi không tường minh này bằng cách buộc chúng ta phải chọn mức thấp nhất có thể
Ví dụ 2.4 Chương trình LPOD P: 1)4xB notC 2)BxC—notD
Chương trình này được chuyên đổi thành:
1{e(1,1), e(I,2)È1 — not C Ac< c(1,1), not C
1{c(2,1) e(2,2)È1 — not D B<—c(2,1), not D
<— not c(/,1), A, not C B< c(1,2), not A, not C <— not c(/,2), B, not A, not C C= c(2,2), not B, not D
< not c(2,1), B, not D s(1,1) — not ¢(1,1), not c(/,2) < not c(2,2), C, not B, not D s(2,1) — not ¢(2,1), not (2,2) %(1,1) — c(1,1) %(2,]) — ¢(2,1) s(1,2) — c(1,2) s(2,1) — ¢(2,1) Chuong trinh nay co 3 tap tra loi: M, = {4, B, c(1, 1), (2, 1D, s(, 2, s@, 1}, M2 = {B, c(1, 2), e(2, 1), s(1, 2), s(2, 1}, M3 = {C, c(2, 2), s(1, 1), s(2, 2)}
Lưu ý rằng trong tập tra lời Mạ không có nguyên tố c(1, k) vi thân của quy tắc đầu tiên không thỏa
Trang 31Mệnh đề 2.4 [3] Cho LPOD P Lúc đó M là tập trả lời của GŒP) khi và chỉ khi MOLit(P) la tap tra lời của P
Do có 3 tiêu chuẩn ưu tiên khác nhau, ta cần đến 3 chương trình kiểm tra khác nhau,
các chương trình này đều cần đến án C(P.M) được định nghĩa như sau:
Định nghĩa 2.13 [3] Cho P là LPOD Lúc đó nhân của fester được định nghĩa như Sau:
C(P,M) = G(P) ÒÖ {oứ,k) | sứ,k) € M} (2 {rule(r) — | r e P}
U {degree(d) —| 3r e P sao cho r có ít nhất d chọn lựa}
U {< not better ; — worse}
Bộ kiểm tra wu tién thir k(k € {c, i, p} T,(P.M) được xác định như sau: T,(P.M) = C(P,M) v T;,
Các trường hợp cụ thể của ba bộ kiểm tra thứ tự ưu tiên khác nhau được trình bày
trong Hình 2.1 đến 2.3 sau đây:
better — s(R,l), o(R,J), I < J, rule(R), degree(1), degree(J) worse <— s(R,J), o(R,l, I < J, rule(R), degree(I), degree(J)
better — {worse(I) : degree(I)}0 better(J), degree(J)
Hình 2.1 Bộ kiểm tra thứ tự ưu tiên Pareto Tp
betfer(D¡) — s(R,D)), 0(R,D2), D; < D›, rule(R), degree(D)), degree(D;) worse(D¡) — s(R,D;), o(R,D)), Dị < D;, rule(R), degree(D)), degree(D;) better — {worse(D;):degree(D;) A D›; < D;}0, betIer(Dn), degree(D¡) worse << {befter(D;):degree(D;) A D›; < D¡}0, worse(D)), degree(D¡)
Hình 2.2 Bộ kiểm tra thứ tự ưu tiên tiêu chuẩn Ti
Trang 32s_card(K,N) — N{s(R,N) : rule(R)}N, degree(K) o_card(K,N) — N{o(R,N) : rule(R)}N, degree(K)
better(D) <—s_card(D,Nj), o_card(D,N2), N; > Nz, degree(D) worse(D) <—s_card(D,N,), o_card(D,N2), N; < N; degree(D)
better <— better(D), degree(D)
worse <— { better(D;):degree(D;) A Dạ <D¡}0, worse(D)), degree(D})
Hình 2.3 Bộ kiểm tra thứ tự ưu tiên bản số T,
Các nguyên tố oứ, &) được sử đụng để lưu trữ mức độ thỏa mãn trong tập trả lời gốc
S sao cho o(r, &) được thêm vào như một sự kiện đối với 7, xŒ,®S) bất cứ khi nào
sứ,k) e S
Bộ kiểm tra thứ tw wu #ên-p (Hình 2.1) là đơn giản nhất Nó chỉ ra rằng M' là tốt hơn nếu tồn tại một quy tắc có mức độ thỏa mãn thấp hơn trong Ä⁄' so với Ä⁄, và xấu hơn nếu có quy tắc có mức độ thỏa mãn cao hơn Bộ kiểm tra tiêu chuẩn z
tiên-i T¡ (Hình 2.2) xem xét từng mức độ thỏa mãn riêng biệt Bây giờ M” được ưu
tiên hơn M nếu tổn tại một mức độ k nào đó mà M' thỏa mãn tốt hơn và với mọi
kˆ< k M' không xấu hơn A⁄ Bộ kiểm tra thứ tự fiên-e 7, (Hình 2.3) hoàn toàn tương tự với 7¡ nhưng ta thêm vào các nguyên tố mới là s-carđ(,n) và o-card(k,n)
dé mã hóa bản số của các tập SŸ và so sánh dựa trên chúng
Mệnh đề 2.4 Cho P là một LPOD và M là tập trả lời của G(P) Lúc đó M' là tập trả lời của 7;(,M (ke {c,¡p})nêu MÌn Lit(P) là tập trả lời của P voi mite wu tién-k đối với Mn Lit(P)
Mệnh đề 2.4 dẫn đến hệ quả sau:
Hệ quả 2.1 Cho P là LPOD và M là tập câu trả lời của G(P) M có mức #w fiên-k
với k (k € {c,í,p} nếu và chỉ nếu Ty(P, M) không có bất kỳ tập trả lời nào
Chúng ta có thể xử lý các thứ tự ưu tiên bằng cách sửa đổi các quy tắc của nguyên tố worse Ta định nghĩa một vị từ mới exeøse(z) dé biéu thị quy tắc quan
trọng hơn 7; r >r, được thỏa mãn đến mức thấp hon trong M' so voi trong M, vi
vậy ta cho phép z được thỏa mãn đến một mức độ cao hơn Hình 2.4 cho thấy cách
Trang 33thức bộ kiểm tra tién-p duoc stra đổi để nhận thông tin BO kiém tra wu tién-i
cũng có thể được thay đổi theo cách tương tự
better(R) — s(R,Ù, o(R,J), I < J, rule(R), degree(]), đegree(J)
worse —s(R,J), o(R,l),not excused(R), I < J, rule(R), rule(R), degree(I), degree(J) excused(R,) — R, > R;, better(R,), rule(R,), rule(R;)
better <— better(R), rule(R)
Hình 2.4 Bộ kiểm tra thứ tự 0 tiên-p được sửa đổi
2.5 TIEU KET CHUONG 2
Chương 2 đã tập trung trình bày cú pháp của chương trình logic đạng tuyển có thứ tự (LPOD) Từ đó, trình bày về ngữ nghĩa tập trả lời ưu tiên của chương trình logic dạng tuyên có thứ tự Cách thức tính các tập trả lời ưu tiên được trình bày chỉ tiết Trong chương 3 sẽ trình bày việc ứng dụng của chương trình logic dạng tuyển
có thứ tự thông qua một số bài toán thực tế
Trang 34CHƯƠNG 3
ỨNG DỤNG CỦA CHƯƠNG TRÌNH LOGIC DẠNG TUYẾN
CÓ THỨ TỰ
LPOD cho phép ta biểu diễn tri thức không đầy đủ thông qua việc sử dụng phủ định mặc định Ngoài ra, chúng còn cung cấp phương tiện để biễn sự ưu tiên giữa các lựa chọn dự định trong các giải pháp Hơn nữa, sự ưu tiên này có thể phụ
thuộc vào ngữ cảnh hiện tại Trong phần này sẽ thảo luận một số bài toán minh họa
ứng dụng của LPOD
3.1 GIGI THIEU HE THONG PSMODELS
Psmodels là một chương trình sửa đổi của Smodels, được sử dụng để tính
toán các tập trả lời ưu tiên cho các chương trình logic đạng tuyển có thứ tự Psmodels được phát triển trong phòng thí nghiệm thuyết khoa học máy tính tại Đại học kỹ thuật Helsinki - Phần Lan bởi Patrik Simons và Tommi Syrjänen [3] Mã nguồn của Psmodels và các tài liệu liên quan có thê tham khảo theo địa chỉ :
http://www.tes hut.fi/Software/smodels/priority/
Psmodels cũng cần phiên bản Lparsel.1.0 hoặc phiên bản mới hơn dé tạo các tệp đầu vào Psmodels và Lparse, đều được cài đặt bằng ngôn ngữ C++ Psmodels được sử đụng để tính toán các tập trả lời ưu tiên cho các chương trình logic đạng tuyển theo thứ tự Lparse là một front-end có thể chuyển đổi chương trình người dùng sang dạng thức chương trình logic nền và tính các tập trả lời cho các chương trình này Đây là phần mềm miễn phí, được cài đặt trên các hệ điều hành Unix/Linux
Để gọi thực thi chương trình bằng Psmodels, thực hiện theo cú pháp: lparse priontles ểên file chương trình.Ìp > /tmp/out
psmodels 0 /tmp/out
với fên file chương trình là tập tin văn bản chứa chương trình logic dang tuyển có thứ tự viết theo cú pháp của Psmodels Kiến trúc của Psmodels như hình
3.1:
Trang 35Chương trình logic Chương trình _ Tập trả lời ——*| A = ———> dang tuyen co thu ty Iparse logic nen psmodels ưu tiên Hình 3.1 Kiến trúc Psmodels
3.2 MỌT SÓ BÀI TOÁN MINH HỌA
Trong phần này sẽ minh họa một số bài toán và biểu điễn chúng bằng các chương trình logic dạng tuyển có thứ tự Việc thực thi các chương trình này được thực hiện bằng phần mềm Psmodels
Bài toán 3.1 Sau đây là bài toán xác định công việc nên làm trong một buổi chiều rảnh rỗi Giả sử bạn thích đi đến bãi biển (bai bien), nhưng cũng thích đến rạp chiếu phim (rap phim) Bình thường, bạn thích đến rạp chiếu phim hơn đi đến bãi biển, trừ khi trời nóng(ong) Nếu trời nóng thì bãi biển được ưu tiên hơn rạp chiếu phim Vào mùa hè (wwa_ he), trời thường là nóng, nhưng cũng có trường hợp ngoại lệ Nếu trời mưa (z2) thì không thể đi đến bãi biển Thông tin này có thể được diễn tả bằng cách sử dụng một LPOD gồm các quy tắc như sau:
rap phim x bai bien <— not nong () bai bien x rap phim — nong (2) nong — not -nong , mua he (3) ¬bai bien — mua (4)
Nếu không có thêm thông tin về thời tiết ta có được tập trả lời ưu tiên duy nhất là Š¡ = { rap phim } Không có thông tin nào là trời có thể nóng, vì vậy quy tắc (1) sẽ xác định các ưu tiên S¡ thỏa mãn tất cả các quy tắc đến mức 1
Bây giờ giả sử sự kiện ma he được thêm vào Trong trường hợp này, ta có Š›= { mua he, nong, bai bien} là tập trả lời ưu tiên duy nhất Một lần nữa câu trả lời này thỏa mãn tất cả các quy tắc đến mức l
Trang 36Tiếp theo giả định rằng, ngoài ua_ he thì literal ¬nong cũng được thêm vào Tập trả lời ưu tiên duy nhất lúc này là Š; = { mua he, —nong, rap phim } Tất cả các quy tắc đều được thỏa đến mức 1
Cuối cùng, giả sử các sự kiện mưa he và mua được thêm vào Bây giờ tập trả lời ưu tiên đuy nhất là:
Sy = { mua he, mua, nong, ¬bai bien, rap phim}
Chú ý rằng lúc này Š¿ không thể thỏa mãn tất cả các quy tắc đến mức 1 vi: quy tắc (2) chỉ được thỏa mãn đến mức 2 Điều này phù hợp trong cuộc sống thực, có những tình huống mà các lựa chọn tốt nhất chỉ đơn giản là không thể thực hiện được
Cài đặt bài toán thành chương trình LPOD bằng Psmodels ta được:
rap phim x bai bien :- not nong bai bien x rap phim :- nong
nang nong :- not -nong, mua he, -bai_ bien :- mua mua_he mua Thực thi bai toán bằng Psmodels ta được kết quả như hình 3.2: eae Lee ea pst0ltls Ì /tIt/0ut Hares 19) a Ty a Stable Mude]: mua he ma nững -hai bien raJ ph Tester (alls: ?
Hình 3.2 Kết quả thực hiện bài toán 3.1
LPOD cũng rất phù hợp để thể hiện các bài toán khi cần có một sự lựa chọn nhất định hoặc nói chung là phải lựa chọn một số thành phần cho một nhiệm vụ
nhất định Ý tưởng chung là:
Trang 37e_ Đối với mỗi thành phần ta dùng một tập hợp các quy tắc mô tả các tính chất
của nó,
e Trong việc xây dựng các quy tắc này có thể phụ thuộc vào các thành phần
khác được lựa chọn,
e Các quy tắc mô tả các tính chất của giải pháp mà chúng ta muốn tạo ra Các mức độ ưu tiên có liên quan có thê phụ thuộc vào ngữ cảnh và sự diễn tả ngữ cảnh lúc ban đầu
Trong mỗi trường hợp, tri thức mặc định có thể được sử dụng để mô tả
những gì thường xảy ra Ta xét tiếp bài toán sau:
Bài toán 3.2 Trong bài toán này, ta xem xét vấn đề thiết lập một thực đơn của nhà hàng Thực đơn bao gồm một món ăn khai vị (khai v, một món chính
(mon_chinh), mon trang miéng (trang_mieng) va dé uéng (do_uong) Mon khai vị ban thich 1a sip (sup) hon salad (salad) Mon chinh co thé 1a cA (ca), thịt bò (thit_bo) va mi éng kiéu Y (mi_ong) nhitng mén nay nha hang déu cé thể nấu và sở thích của bạn theo thứ tự này Tất nhiên, nếu thực khách 1a ngwéi an chay(an_chay) thì hai món chính đầu tiên (cũng như sp) không là vấn để bàn đến nữa Trong trường hợp chọn #£ bò bạn thích rượu vang đỏ (vang do) hơn rượu vang trắng (vang trang) và hơn nước khoáng (nuoc khoang), nêu không thứ tự giữa các loại rượu là ngược lại Chỉ có cà phê đá (caphe_ da) và banh tiramisu (tiramisu) la mon tráng miệng Nếu bánh /iramisu được chọn thì có thê thêm cà pñê (ca_ phe) nếu cần Bạn thích hương vị cà phê espresso(espresso) hơn hương vị cà phê cappucIno (cappucino)
Như vậy các thành phần có thể lựa chọn là: sup, salad, ca, thi bo, mỉ ong,
caphe_da, tiramisu, espresso, cappucino, vang do, vang trang và nuoc khoang Các tính chất sau đây của các thành phần nêu trên là thích hợp:
¬an chay <— thit bo ¬an chay <— ca ¬an chay <— _ soup
ruou — vang Irang
Trang 38ruou — vang đo ca phe — tiramisu Các thành phân cần thiết là: khai vỉ mon chỉnh trang IHmieng do_uong Các ưu tiên như sau: sup < salad ca x thit_bo x mi_ong
vang do x vang trang x nuoc khoang vang trang x vang do x nuoc khoang espresso < cappuccino caphe_da tiramisu c— khai vỉ mon chỉnh do_uong, thit_bo do_uong, not thit_bo ca_phe
not firamisu, trang_mieng
not caphe_da, trang _mieng Bài toán được biểu diễn bằng một chương trình logic dạng tuyển có thứ tự P như
sau:
sup < salad
ca x thit_bo * mỉ ong
Trang 39ruou <— vang do ca_phe <— tiramisu
caphe_da <— not tiramisu, trang_mieng tiramisu <— not caphe_da, trang_mieng
Với một mô tả về trường hợp thực tế đang diễn ra, ví dụ: thực khách ăn chay
hay không, uống rượu hay không, thích cá không các tập trả lời ưu tiên sẽ xác
định một thực đơn phù hợp với sở thích của thực khách càng nhiều càng tốt Hai
quy tắc cuối là cần thiết để đảm bảo rằng một trong những món tráng miệng được
chọn Đối với các món ăn khác, thứ tự này được ngầm định là thứ tự ưu tiên
Chúng ta hãy xem xét một mô tả ngữ cảnh thực tế như sau: Thực khách không phải là người ăn chay (—=an_chay), Thực khách yêu cầu một món ăn khai vị (khai vi), một món chính (mon chỉnh), món trắng miệng (rang mieng) và đồ uống (do_uong) Ching ta cé thé biểu diễn các tùy chọn của thực khách bằng một chương trình logic dạng tuyên có thứ tự C như sau: ¬an chay <— khai vỉ — mon chỉnh <— trang_mieng <— do_uong —
Có thê kiểm tra chương trình LPOD PL2C có 54 tập trả lời Tuy nhiên trong số đó chỉ có hai tập trả lời ưu tiên nhất phù hợp cho thực khách hiện tại
M,={do_uong, trang mieng, mon chỉnh, khai vị, —an chạy, ca, sup, caphe_da, ruou, vang_trang}
M;= { do ong, trang miếng, mon chỉnh, khai vỉ, ~an_chay, ca, sup, tiramisu, ruou, vang trang, ca_phe, espresso}
Cài đặt bài toán thành chương trình LPOD bằng Psmodels ta được:
Trang 40
sup x salad :- khai vi
ca x thit_bo x mi_ong :- mon_chinh
vang_ do x vang trang x nuoc_khoang :- do_uong, thit_bo vang trang x vang do x nuoc khoang :- do_uong, not thit bo ©Sbresso x Cappuccino :- ca_phe -an_chay :- thit_bo -an_chay :- ca -an_chay :- sup
Yuou :— vang trang Yuou :— vang do ca_phe :- tiramisu
caphe da :- trang mieng, not tiramisu tiramisu :- trang _mieng, not caphe da -an_chay khai vi mon chỉnh trang mieng do_uong
Thực thi bai toán bằng Psmodels ta được kết quả như hình 3.3: