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

Tìm hiểu ngữ nghĩa chương trình logic dạng tuyển có thứ tự

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

Định dạng
Số trang 47
Dung lượng 19,46 MB

Nội dung

Trang 1

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 3

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

MỤ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 5

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

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

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

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

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ệ ư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 10

CHƯƠ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 12

Trong các công thức, người ta thường chú ý đến công thức đóng, ta có định nghĩa:

Định nghĩa 1.5 (Công thức đóng) Công thức đóng là công thức không chứa biến

tự do

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 13

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

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

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

viế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 19

L= {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 20

CHƯƠ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 21

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

Có 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 24

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

S{Œ)={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 27

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

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

dự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 30

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

Mệ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 32

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

thứ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 34

CHƯƠ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 35

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

Tiế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 37

e_ Đố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 38

ruou — 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 39

ruou <— 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:

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