BỘ GIÁO DỤC VÀ ĐÀO TẠO
DAI HOC HUE
TRUONG DAI HOC KHOA HOC
HOANG HUU ANH TUYEN
TIM HIEU CAC HAM KET TAP TRONG LAP TRINH TAP TRA LOI VA UNG DUNG
LUAN VAN THAC SI KHOA HOC
KHOA HOC CONG NGHE THONG TIN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO DAI HOC HUE
TRUONG DAI HOC KHOA HOC
HOANG HUU ANH TUYEN
TIM HIEU CAC HAM KET TAP TRONG LAP TRINH TAP TRA LOI VA UNG DUNG
CHUYEN NGANH: KHOA HOC MAY TINH MA SO: 84.80101
LUAN VAN THAC Si KHOA HOC
DINH HUONG NGHIEN CUU
NGUOI HUONG DAN KHOA HOC
PGS.TS TRUONG CONG TUAN
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của cá nhân tôi Tất cả số liệu, kết quả nghiên cứu trong luận văn là trung thực, chưa được người khác công bồ trong bất cứ một công trình nghiên cứu nao
Người thực hiện
Trang 4buộc yếu Ngữ nghĩa sẽ tối ưu hóa đầu tiên là các ràng buộc ở mức ưu tiên cao nhất, sau đó đến các ràng buộc ở mức ưu tiên thấp hơn và tiếp tục như vậy
Mức độ đánh giá và mức độ ưu tiên có thể là các biến, cung cấp rằng các biến này cũng xuất hiện trong các phan ti dong trong Conj (Li, L2 Lm) Nguoi sử dụng có thể bỏ qua mức độ đánh giá, mức ưu tiên hoặc cả hai, nhưng tất cả các ràng buộc yếu phải có cùng một dạng cú pháp như nhau trong chương trình
Ví dụ 2.4 Cho nguyên tô #siz(V) mô tả XY là một học sinh, nguyên tô điem(Y,Y,Z) mô tâ học sinh X, có điểm môn học Y là Z, nguyên tổ //ch(X,Y) mô tả học sinh Y yêu thích môn học Y đ/„zyen(Y,Y) mô tả học sinh X được chọn vào đội tuyển Y
Với tập sự kiện cho ở ví dụ 2.1, ta xây dựng các quy tắc chọn đội tuyên học sinh giỏi cho các mơn Tốn, Lý, Văn theo các yêu cầu:
a Một học sinh có thể được chọn vào đội tuyên Toán hoặc Lý hoặc Văn b Mỗi học sinh chỉ được tham gia một đội tuyển
c Một học sinh được chọn vào đội tuyển Văn khi học sinh đó phải yêu thích môn Văn
d Chọn một học sinh vào đội tuyển Toán nên chọn học sinh có tổng điểm
hai mơn Tốn, Lý lớn hơn 17.5 điểm
e Chọn một học sinh vào đội tuyển Lý nên chọn học sinh có tông điểm hai
mơn Tốn, Lý lớn hơn 16.0 điểm
Với các yêu cầu trên, ta có thê biểu diễn bởi các quy tắc kết tập a, Ð, e, đ, e
như sau:
a: dtuyen(X,toan) v dtuyen(X, ly) v dtuyen(X,van) < hsinh(X) b: < dtuyen(X,Y), not #eount{Z: dtuyen(Z, Y)} = 1
6 « đứiyen(X, van), not thich(Y, van)
d: < dtuyen(X,toan), not #sum{Z: diem(X,Y,Z), Y!= van} > 175 e: < dtuyen(X, ly), not #sum{Z: diem(X,Y,Z), Y!= van} > 160
Trang 5MỤC LỤC Danh mục các hình 1 Danh mục các thuật ngữ li Danh mục các từ viết tắt ili MO DAU 1 Chương 1 CÁC KHÁI NIỆM CƠ SO CUA CHUONG TRINH LOGIC 3 1.1 CÚ PHÁP CHƯƠNG TRÌNH LOGIC 3
1.2 NGỮ NGHĨA CHƯƠNG TRÌNH LOGIC 9 1.2.1 Ngữ nghĩa của chương trình logic xác định 10 1.2.2 Ngữ nghĩa tập trả lời của chương trình logic thông thường 15
1.3 CÁC TÍNH CHÁT CỦA NGỮ NGHĨA 16
1.4 TIEU KET CHUONG 1 17
Chuong 2 CHUONG TRINH LOGIC CO CHUA CAC HAM KET TAP 18
2.1 CU PHAP CHUONG TRINH LOGIC CO CHU'A CAC HAM KET TAP 18
2.1.1 Tap ky hiéu, tap nén 18
2.1.2 Ham két tap 19
2.1.3 Nguyên tố kết tập 20
2.1.4 Quy tắc kết tập, chương trình logic có chứa hàm kết tập 20 2.1.5 Quy tắc an toàn, chương trình an toàn 25 2.2 NGU NGHIA TAP TRA LOI CUA CHUONG TRINH LOGIC CO
CHUA HAM KET TAP 26
Trang 62.2.4 Tập trả lời
2.2.5 Phép bién déi Gelfond - Lifschitz 2.3 MOT SO TINH CHAT NGU NGHIA 2.4 TIEU KET CHUONG 2
Chuong 3 UNG DUNG HAM KET TAP TRONG LAP TRINH TAP TRA LOI
3.1 TONG QUAN VE HE THONG DLV
3.1.1 Giới thiệu về hệ thông DLV
3.1.2 Thực thi chương trình logic bằng hệ thống DLV
3.1.3 Một số vị từ số học xây dựng trong trên hệ thống DLV
3.2 BAI TOAN UNG DUNG
Bài toán 1: Thiết kế mạch điện
Bài toán 2: Xây dựng chương trình “Hỗ trợ tuyên chọn đội tuyên bồi dưỡng học sinh giỏi”
3.3 TIEU KET CHUONG 3
KET LUAN VA HUONG PHAT TRIEN
Trang 7hschon (thu, anh) hschon (thu, hschon (hong, dia) hschon (hong, hschon(ni, van) hschon(ni, su) Lay} = hschon (nhi, aia): 5
toan) hschon(khanh, hoa) sinh) hschon(khoa, anh)
hschon(nhi, sinh) hschon(ngoc, hschon(ngoc, anh) hschon(ly, hschon(ly, gdcd) hschon(mai,
°
gvchon (%X,Y)
gvchon (minh, anh) gvchon (minh, anh) gvchon(chau, toan) gvchon (nab, gvchon (san, anh) gvchon (san,
gvchon (phong, su) gvchon(linha, gvchon (quyen, dia) gvchon(quyen, gvchon (hang, su) gvchon (1y,
gvchon (thu, dia) gvchon(thu, gvchon(linhb, toan) gvchon(linhc,
gvchon (vy, gdcd) gvchon(vy,
gvchon(ni, dia) gvchon (anha, gvchon(kiet, hoa) gvchon(kiet,
gvchon (huyen, gdcd) gvchon(luy,
gvchon(khoa, hoa) gvchon (khoa, gvchon (nha, van) gvchon (hieu, gvchon (thanh, hoa) gvchon(thanh,
gvchon (khanh, SU) « gvchon(y,
gvchon (mai, sinh) gvchon (mai, gvchon (nhu, hoa) gvchon(anhb,
gvchon (thuy, sinh) gvchon(thuy,
gvchon (nhỉ, dia) gvchon(linhd,
Trang 8DANH MỤC CÁC THUẬT NGỮ
Chương trình logic xác định Chương trình logic thông thường Chương trình logic đây đủ Công thức đóng Công thức logic Công thức nên Cơ sở Herbrand Hạng thức Hạng thức nên Hé qua logic Literal dm Mệnh đề xác định Mô hình Herbrand Mô hình Herbrand nhỏ nhất Mô hình cực tiễu Mô hình bên vững Nguyên tố Nguyên tô nền Phép thé Phép thê nên Thê hiện Herbrand Vii tru Herbrand
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
AI Artificial intelligence ASP Answer Set Programming DLP Disjunction logic programming DLV Datalog with Disjunction IG Intelligent Grounder
MC Model Checker MG Model Generator
Trang 10MỞ ĐẦU
Trong hơn hai thập kỷ qua, việc nghiên cứu về lập trình tập trả lời (ASP - Answer Set Programming) đã đạt được nhiều thành tựu quan trọng cả về lý thuyết và ứng dụng ASP chủ yếu dựa trên ý tưởng lập trình khai báo, ở đó các chương trình không được tạo ra từ các câu lệnh cũng như từ các hàm mà được tạo ra chủ yếu dựa trên tập các vị từ Lĩnh vực nghiên cứu ASP được nhiều nhà khoa học quan tâm và đã được áp dụng vào việc biểu diễn, xử lý tri thức trong lĩnh vực trí tuệ nhân tạo (AI - artificial intelligence) và các lĩnh vực nổi lên khác như quản trị tri thức và tích hợp thông tin [4] [Š] [7]
Mặc dù ASP có tính biểu cảm cao nhưng có một số tính chất đơn giản, thường phát sinh trong các ứng dụng ở thế giới thực mà ASP không diễn tả được một cách tự nhiên và cũng có thể không mã hóa được Đặc biệt là các tính chất đòi hỏi việc sử dụng các toán tử số học (nhu sum, count, min, max) trén mot tap hop cac phan tử thỏa mãn một số điều kiện Để vượt qua khiếm khuyết này, ASP đã được mở rộng bằng các hàm kết tap [5]
Trong thực tế các hàm kết tập đã giúp ASP phát triển mạnh trong lĩnh vực Trí tuệ nhân tạo như các ứng dụng về lập kế hoạch, lý luận xác suất, xử lý tri thức, tích hợp dữ liệu, trả lời truy vấn, xử lý ngơn ngữ, chân đốn, lĩnh vực Sinh học như tính toán sinh học, hệ thống sinh học, tin sinh học lĩnh vực Công nghiệp như các hệ hỗ trợ quyết định, liên kết sản phâm tự động, định tuyến cuộc gọi thông minh, cấu hình lại an toàn đường sắt, lĩnh vực Du lịch và nhiều lĩnh vực khác [4]
Trong luận văn này tập trung tìm hiểu các kiến thức cơ sở về chương trình logic, cú pháp, ngữ nghĩa tập trả lời của chương trình logic có chứa hàm kết tập và ứng dụng biểu diễn các bài toán thực tế
Cấu trúc luận văn được trình bày gồm có ba chương:
Trang 11xác định, phép biến đổi Gelfond - Lifschitz và thông qua đó trình bày ngữ nghĩa của tập trả lời của chương trình logic thông thường
Chương hai tập trung nghiên cứu, tìm hiểu về cú pháp, ngữ nghĩa tập trả lời của chương trình logic có chứa các hàm kết tập Cú pháp chương trình logic có chứa hàm kết tập tập trung vào các khái niệm tập ký hiệu, tập nền, hàm kết tập, nguyên tố kết tập, quy tắc kết tập, chương trình logic có chứa hàm kết tập, quy tắc an toàn và chương trinh an toàn Tìm hiểu vũ trụ, cơ sở Herbrand, phép thế, thể hiện, mô hình, phép biến đổi Gelfond - Lifšschitz và ngữ nghĩa tập trả lời của chương trình logic chứa hàm kết tập tập
Chương ba gồm có 2 phần, phần thứ nhất giới thiệu tổng quan về hệ thống DLV và quá trình hoạt động của các mô đun có trong hệ thống khi chạy chương trình Phần thứ hai là ứng dụng hàm kết tập trong lập trình tập trả lời để biêu diễn các bài toán trong thực tế và thực thi trên hệ thống DLV bao gồm 2 bài toán: bài toán “Thiết kế mạch điện” tối ưu và bài toán xây đựng “Chương trình hỗ trợ tuyển chọn đội tuyên học sinh giỏi” để hỗ trợ trong công tác bồi dưỡng học sinh giỏi tại các trường TH&THCS ở huyện Hải Lăng, tỉnh Quảng TTỊ
Trang 12Chương 1
CÁC KHÁI NIEM CO SO CUA CHUONG TRINH LOGIC
Chương 1 trình bày một số khái niệm cơ sở của chương trình logic về cú pháp của chương trình logic, ngữ nghĩa chương trình logic xác định, ngữ nghĩa tập trả lời và các tính chất của ngữ nghĩa [1] Đây là những kiến thức cơ sở cần thiết trong việc nghiên cứu, tìm hiểu các chương sau
1.1 CÚ PHÁP CHƯƠNG TRÌNH LOGIC
Trong phần này sẽ trình bày các khái niệm cơ sở của chương trình logic, các khái niệm về bộ ký tự, hạng thức, nguyên tố, literal, công thức logic, chương trình logic xác định và chương trình logic thông thường
Định nghĩa 1.1 (Bộ ký tự) Bộ ký tự bao gồm các lớp ký hiệu sau: 1 Hằng, thường ký hiệu bởi các chữ cái in thường ví dụ a, 5, e, 2 Biến, thường ký hiệu bởi các chữ cái In hoa, ví dụ X, Y, Z 3 Hàm, thường ký hiệu bởi các chữ cái In thường, ví dụ ƒ, ø, ñ, 4 VỊ từ, thường ký hiệu bởi các chữ cái in thường, ví dụ 7Ø, g, 7, 5 Hang vi tw: true, false
6 Ký hiệu kết nói: not (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 “)”, dau phay “,”
Trang 13chưa được chỉ rõ Các bộ ký tự trong ngôn ngữ bậc nhất thường phân biệt nhau bởi các hằng, biến, hàm và vị từ còn các hằng vị từ, ký hiệu kết nối, lượng từ, các dấu ngoặc của các bộ ký tự thường giống nhau
Ví dụ 1.1 Cho bộ ký tự ⁄4 bao gồm các lớp ký hiệu sau: Hang: a, b
Biến: X, Y
Hàm: ƒ; ø là ký hiệu hàm ] ngôi VỊ từ: ø, đ là ký hiệu vị từ 1 ngôi
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 và được xây đựng từ các hằng, biến, hàm của bộ ký tự
Định nghĩa 1.2 (Hạng thức) Cho 41 là bộ ký tự Jạng thức được định nghĩa đệ quy
như sau:
() Mỗi hằng trong 4 là một hạng thức, (0 Mỗi biến trong 41 là một hạng thức,
Œ) Nếu ƒlà ký hiệu hàm n-ngéi trong A va ty, ., f„ là các hạng thức thì f¡, , fm) là một hạng thức, 5
(v) Hạng thức chỉ được sinh ra bởi các quy tắc trên Hạng thức không chứa biến gọi là hạng thức nên Vi du 1.2 Cho bộ ký tự ⁄l bao gồm các ký hiệu sau:
Hằng: a, b,
Trang 14Ta có tập hạng thức {a, ở, X, Y, ƒa), f(b), g(a), 96), (2, (1), 20D, 1),
#ữ@)), W0), s(s(4)) }
Tập các hạng thức nền: {a, ö, ƒ(@), ƒ0), s(4), s0), f4), fỮ)), s(s(4)) }
Trong ngôn ngữ tự nhiên, việc kết hợp các từ nào đó sẽ tạo nên những câu có nghĩa Các câu như vậy được biêu diễn trong logic vị từ bởi những cấu trúc đặc biệt được xây dựng từ các hạng thức và các lớp ký hiệu của bộ ký tự Những cấu trúc này được gọi là các công thức logic (hoặc đơn giản là công thức) và công thức đơn giản nhất được gọi là nguyên tổ và được định nghĩa như sau:
Định nghĩa 1.3 (Nguyên tố, literal) Nếu í, , /„ là các hạng thức, p là ký hiệu vị từ
n-ng6i thi p(t, , f„) được gọi là một nguyên tố Nguyên tố nền là nguyên tô không chứa biến
Một nguyên tô hoặc phủ định một nguyên tố được gọi là /erai Nguyên tố gọi là /eral dương và phủ định của một nguyên tổ goi 1a literal dm Ky hiéu pha định của nguyên tố p là not ø
Vi du 1.3 Cho bộ ký tự 1 bao gồm các ký hiệu sau: Hằng: a, b Biến: X, Y Hàm: ƒ; ø là ký hiệu hàm ] ngôi VỊ từ: ø, g là ký hiệu vị từ 1 ngôi Ta có: Các nguyên tố: p(2), p@), g(a), 9(b), PCO, a), Các nguyên tố nền : p(a), p(b), q(4), q(b),
Cac Literal duong: p(a), p(d), g(a), q(b), PX), G(X)
Trang 15Œ) Mỗi nguyên tổ là một công thức;
(ii) Cac hang vị từ true va false 1a cac cong thc;
(iii) Néu E va F là các công thức thì:
(E V F), not (E), (EA F), (E < F), E © F) la cac cong thirc;
(iv) Néu E 1a cong thire va XY 1a m6t bién trong A thi VY (E), 4X (E) 1a cac công thức; VX, 3X được gọi là phần lượng từ, E là miễn tác đụng của lượng từ;
(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 Một công thức không chứa biến gọi là công thức nền
Ví dụ 1.4 Xét một số câu khai báo trong ngôn ngữ tự nhiên như sau: (i) “An học giỏi”
(ii) “Binh 1a thay cua An”
(iii) “Tất cả học sinh học giỏi đều được khen”
(iv) “Moi hoc sinh học không giỏi đều được động viên”
Ta có thể sử dụng các nguyên tố giø/(X) để mô tả học sinh XY học giỏi, thay(Y,Y) đề mô tả X là thầy của Y, nguyên tổ &hen(Y) để mô tả X là học sinh được khen, nguyên tô đongvien(X) đề mô tả X là học sinh được động viên Lúc đó các câu khai báo trên được mô tả bởi các công thức như sau :
(i) gioi(an) (ii) thay(binh, an) (iit) khen(Y) < gioi(X)
(iv) dongvien(X) < not gioi(X)
Trang 16Định nghĩa 1.5 (Mệnh đề xác định) Mệnh đề xác định là một công thức có dạng:
AC BA AB„ (1) Trong đó 4, B¡, , B„ là các nguyên tô Ta gọi nguyên tố 4l là đầu và By A A By la than cia ménh dé
Trong ménh dé (1), néu n = 0 thi nd duoc goi la ménh dé don vi, nghĩa là mệnh đề có dạng: 4 <©—, đó là mệnh đề với thân rỗng, ta quy ước phần thân rỗng là true va ký hiệu © có thể bỏ qua
Ví dụ 1.5 Xem xét một số câu khai báo của ngôn ngữ tự nhiên: (i) “Minh là con của Dung”
(ii) “Anh 1a con cua Minh” (11) “Dung là con của Vinh” (iv) “Khoa là con của Dung”
(v) “Cháu của một người là con của con của người đó”
Ta có thê sử dụng các vi tir con (vị từ 2 ngôi chỉ quan hệ “ là con của ”),
‹
chau (vị từ 2 ngôi chỉ quan hệ “ cháu của ”) đề mô tả các câu khai báo trên: (i) con(minh, dung)
(ii) con(anh, minh) (iii) con(dung, vinh) (iv) con(khoa, dung)
(v) VX VY (chau (X, Y) — AZ(con(X,Z) a con(Z, Y))) Công thức số (v) ở trên ta có thê biến tương đương như sau: VX VY (chau (X, Y) — 3 Z(con(X,Z) a con(Z, Y)))
Trang 17VX VY VZ (chau (X, Y) < (con(X,Z) a con(Z, Y))) Hay: chau (X, Y) < con(X,Z) A con(Z, Y) (*)
Cac céng thie (7)-(iv) va (*) duge goi la ménh dé xác định, trong đó mệnh đề tu (i)-(iv) duoc goi 1a ménh dé don vi
Định nghĩa 1.6 (Chương trình logic xác định) Chương trình logic xác định là một tập hữu hạn khác rỗng các mệnh đề xác định
Trong một chương trình logic xác định, tập các mệnh đề có cùng ký hiệu vị từ p 6 phan dau được gọi là định ngiĩa của vị từ p
Ví dụ 1.6 Xem xét chương trình logic xác định P gồm các mệnh đề: rị: odá(s(0)) <—
12: odd(s(s(X))) < odd(X)
Chương trình này định nghĩa vị từ ođđ, chứa một hằng là 0 và s la ham 1- ngôi, s(Y) =X + ¡ với X thuộc tập số tự nhiên N, nguyên tố ođá(X) đề chỉ X là một số lẻ Mệnh đề đơn vị z¡ có ý nghĩa s(0) là một số lẻ và zz là mệnh đề với ý nghĩa
nếu XY là số lẻ thì s(s(X)) cũng là số lẻ
Các mệnh đề trong chương trình logic xác định là những mệnh đề xác định, nghĩa là thân của các mệnh đề hoặc là rỗng hoặc chỉ gồm literal dương và không chứa literal âm Trong trường hợp tổng quát, thân của các mệnh đề trong chương trình logic có thể chứa cả literal dương và literal âm Từ đó ta có thể định nghiã mệnh đề thông thường và chương trình logic thông thường như sau:
Định nghĩa 1.7 (Mệnh đề thông thường) Mệnh đề thông thường là những mệnh đề
có dạng:
Trang 18Ví dụ 1.7 Cho các câu khai báo sau:
() “Một học sinh ngoan là học sinh không bị phê bình” (7) “Một học sinh bị phê bình là học sinh không ngoan”
(iii) “X và Y là hai người khác giới, Y là nam nếu Y không phải là nam” Mô tả các khai báo sau bằng các mệnh đề thông thường:
(1) ngoan(X) < hocsinh(X), not phebinh(X) (ii) phebinh(X) <— hocsinh(X), not ngoan(X)
Trong dé ngoan(X) la nguyén té m6 ta_X 1a hoc sinh ngoan, hocsinh(X) 1a nguyên tố mô tả X 1a mét hoc sinh, phebinh(X) 1a nguyén té mé ta_X 1a hoe sinh bi
phé binh
(iit) nam(X) khacgioi(X, Y), not nam(Y)
Trong đó zm(Y) là nguyên tố mô tả X có giới tính là nam, khacgioi(X,Y) la nguyên tố mô tả X, Y là hai người khác giới
Định nghĩa 1.8 (Chương trình logic thông thường) Một chương trình logic thông thường là một tập hữu hạn khác rỗng các mệnh đề thông thường
Vi du 1.8 Một ví dụ về chương trình logic thông thường: hoesinh(an) —
phebinh(X) hocsinh(X), not ngoan(X) ngoan(X) < hocsinh(X), not phebinh(X)
1.2 NGU NGHIA CHUONG TRINH LOGIC
Trang 191.2.1 Ngữ nghĩa của chương trình logic xác định
Định nghĩa 1.9 (Vũ trụ Herbrand, Cơ sở Herbrand) Cho ? là chương trình logic xác định
1 Vñ trụ Herbrand của P, ký hiệu Up, là tập các hạng thức nền được xây dựng từ các hằng và các ký hiệu hàm trong P
2 Cơ sở Herbrand của P, ký hiệu Bp là tập các nguyên tố nền được xây dựng từ các ký hiệu vị từ trong ? có đối là các hạng thức nền từ vũ tru Herbrand Up Ví dụ 1.9 Xét chương trình logic xác định P như sau: dep(lan) — khoe(thuy) — khoe(anh) — tot(thuy) — thong minh(hung) — giau(thuy) — thich(lan,X) < thich(hong,X) < thich(thuy,X) < thich(ann,X) < thich(binh,X) < thich(hung,X) < ket_ban(X,Y) < dep(hong) <— dep(binh) — khoe(lan) <— khoe(binh) — khoe(hung) — tot(lan) <— thong_minh(hong) <— thong_minh(anh) <— thong_minh(binh) — giau(hong) — giau(hung) —
khoe(X), dep(X), thong_minh(X) khoe(X), thong_minh(X), giau(X) khoe(X), dep(X), thong_minh(X) dep(X), tot(X), thong_minh(X) dep(X), khoe(X)
khoe(X), tot(X), thong_minh(X) thich(X, Y),thich(Y,X)
Vũ trụ Herbrand Ứ của P là: p = {lan, hong, thuy, anh, bình, hung} Cơ sở Herbrand öp của ? là:
Trang 20© {khoe (X) |X e { lan, hong, thuy, anh, binh, hung }}
U {tot (X)|X e { lan, hong, thuy, anh, binh, hung }}
{thong minh (X) | X e { lan, hong, thuy, anh, binh, hung }} © {gian (X) |X e { lan, hong, thuy, anh, binh, hung }}
U {thich (X,Y)|X, Y e { lan, hong, thuy, anh, binh, hung }}
{ket ban (X,Y) | X, Y e { lan, hong, thuy, anh, binh, hung }}
Định nghĩa 1.10 (Thể hiện Herbrand) Một thể hiện Herbrand của chương trình logic xác định ? là một thể hiện 7 sao cho:
@) Miền của 7 là vũ trụ Up;
(Ð Mỗi hằng trong P được gán bởi chính nó;
(Œ?) Mỗi hàm m-ngôi ƒtrong P được gán bởi một ánh xạ
fi U} >U,
Vự f„) <Up, ƒ;( f„) = ƒŒ f„);
(iv) MGi vị từ n-ngôi p trong P được gán bởi một ánh xạ p, Ut - {true, false}
Đối với mỗi thê hiện Herbrand thì phép gán đối với các hằng, hàm là không đổi Các thê hiện Herbrand chỉ khác nhau bởi giá trị chân lý của các nguyên tô nền Vì vậy, một thể hiện Herbrand 7 của chương trình logic P được thể hiện bởi một tập hợp con 7 của cơ sở Herbrand Bp của P theo nghĩa các nguyên tổ nền trong 7 có giá tri true, nguoc lai co gia tri false
Định nghĩa 1.11 (Mô hình Herbrand) Cho P là chương trình logic xác định Một mô hình Herbrand của P là một thê hiện Herbrand mà là mô hình của mọi mệnh đề trong P
Ví dụ 1.10 Xét chương trình logic P như sau:
Trang 21rị: con(minh, dung) — r2: con(anh, minh) —
rạ: chau (X, Y) con(XY,2Z) A con(Z, Ÿ)
Vi tru Herbrand Up= {minh, dung, anh, minh}
Co sé Herbrand Bp = {con (X,Y)| X,Y € {minh, dung, anh}} U {chau (X, Y)| X,Y € {minh, dung, anh}} 1 Một số thể hiện Herbrand của P:
I; = ©, c6 nghia X co gia tri false, voi VX € Bp 12 = {con(minh, dung), con(anh, minh)}
Co nghia con(minh, dung) co gia tri true, con(anh, minh) có giá trị true va X có giá trị false voi VX e Bp\l2
13 = {con(minh, dung), con(anh, minh), chau(anh, dung)}
Có nghĩa con(minh, đung) có gia tri true, con(anh, minh) co gia tri true, chau(anh, minh) co gia tri true va X co gia tri false voi VX € Bp\I3
2 Xét các thê hiện trên
Ir: Không phải là mô hình Herbrand của P, vì 7; không phải là mô hình của r¡ (hay mệnh đề 1 sai trong 7;)
Jz: Không phải là mô hình Herbrand của ?, vì 7; không phải là mô hình của 7; (hay mệnh đề 3 sai trong 7;)
7z: là một mô hình Herbrand của ?, vì 7¿ là mô hình của cả r¡, 72, r3
Trang 22vấn đề ở đây là làm thế nào đề tìm được mô hình Herbrand nhỏ nhất đối với chương trình logic xác định thì trong phần này sẽ trình bày cách tìm mô hình Herbrand nhỏ nhất bằng toán tử 7p (Toán tử hệ quả trực tiếp) như sau:
Mô hình Herbrand nhỏ nhất A⁄p của chương trình logic xác định P là tập các nguyên tố nền hệ quả logic của P Nghĩa là: Mp ={A € Bp|P EA) Mô hình Herbrand nhỏ nhất của P là giới hạn của dãy (77(Ø)),„, được xây dựng như sau: T;(Ø)=Ø 7z"(Ø)=T,đ;(Ø)) T?(Ø)= UT;() i=0
Trong do: Tp(): 2”? ->2” được xác định như sau:
Với mỗi 7 e 2”, 7p() = {A e B› | 3 quy tắc nền 4 ôâ 4I, , 4ằ ca P v 4i
e/,I=1, ,n}
Trang 23Iz = Tp(Ii) = {con(minh, dung), con(anh, minh), chau(anh, dung)} lạ = Tp(ö) = l
Vậy [2 = {con(minh, dung), con(anh, mình), chau(anh, đung)} là mô hình Herbrand nhỏ nhất của P (ngữ nghĩa chương trình logic xác định P)
Với chương trình logic xác định, ngữ nghĩa được xác định là mô hình Herbrand nhỏ nhất của các mệnh đề Tuy nhiên, trong nhiều trường hợp ta cần sử dụng phủ định một số vị từ nhằm diễn tả mối liên hệ bằng những mệnh đề logic Nhiều ý tưởng đã được phát triển nhằm áp dụng cho lớp mệnh đề mở rộng này và một trong những mở rộng đó là việc xác định ngữ nghĩa của chương trình logic thông thường
Ví dụ 1.12 Xét chương trình logic thông thường P gồm các mệnh đề sau: hoesinh(an) —
phebinh(X) hocsinh(X), not ngoan(X) ngoan(X) <— hocsinh(X), not phebinh(X) Chương trình trên có 2 mô hình:
Mi = {hocsinh(an), phebinh(an)} M2 = {hocsinh(an), ngoan(an)}
Áì Œ Mỹ: và M› # Mĩ nên chương trình trên không có mô hình nhỏ nhất và 2 mô hình trên gọi là mô hình cực tiểu
Trang 241.2.2 Ngữ nghĩa tập trả lời của chương trình logic thông thường
Ngữ nghĩa tập trả lời được xem xét dựa trên logic 2-trị, tức là mọi nguyên tố nên chỉ nhận được một trong hai giá trị là đúng hoặc sai và ngữ nghĩa này có thê áp dụng cho các chương trình logic mà trong thân các mệnh đề có chứa phủ định Định nghĩa 1.13 (Phép biến đổi Gelfond - Läfschifz) Gọi ground(P) là chương trình nền nhận được từ chương trình logic thông thường P bằng cách thay thế các biến trong mọi mệnh đề của P bởi các hạng thức trong vũ trụ Herbrand của P Đối với mọi thể hiện À⁄ của ground(P), ky hiéu Py là chương trình nhận được từ ground(P) bằng cách loại bỏ:
1 Các mệnh dé cé literal 4m not B trong thân của nó với B e M⁄, và
2 Tất cả literal âm trong các thân của các mệnh đề còn lại
Điều kiện 1 nói rằng, nếu ÐeÀ⁄/ thi thân quy tắc có chứa literal not không thé trở thành đúng, vì vậy có thể loại bỏ quy tắc này Mặt khác, nếu ø 1 thi not B có thể giả sử là đúng và được loại bỏ khỏi thân quy tắc chứa nó Rõ ràng, ?„ là chương trình không có phủ định, nó là chương trình logic xác định, vì vậy có mô
hình nhỏ nhất
Ví dụ 1.13 Xét chương trình logic P gồm các mệnh đề sau: khacgioi(an, binh) —
nam(X) < khacgioi(X, Y), not nam(Y)
Sử dụng phép biến đổi Gelfond — Lifschitz ta co:
Chương trinh ground(P) thu đượ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 an, binh là:
khacgioi(an, binh) —
nam(an) khacgioi(an, binh), not nam(binh) nam(an) < khacgioi(an, an), not nam(an)
Trang 25nam(binh) khaecgioi(binh, an), not nam(an) nam(binh) khacgioi(binh, binh), not nam(binh) Dat M = {nam(binh)} Lúc đó, P là:
khacgioi(an, binh) —
nam(an) < khacgioi(an, an), not nam(an) nam(binh) < khacgioi(binh, an), not nam(an)
Định nghĩa 1.14 (Mô hình bền vững) Cho P là chương trình logic thông thường, M là một thể hiện của P Nếu mô hình nhỏ nhất của Px đồng nhất với ⁄ thì ta nói
M là mô hình bên vững của P
Ngữ nghĩa tập trả lời của chương trình logic thông thường P là tập các mô hình bền vững của P
Ví du 1.14 Xét chương trình logic P 6 vi du 1.12
Mô hình cực tiểu của P„ là {khacgioi(an, binh)}, nó khác với M Do đó M không phải là mô hình bền vững
Dat M = {khacgioi(an, binh), nam(an)} Luc do Py la: khacgioi(an, binh) —
nam(an) < khacgioi(an, binh) nam(binh) < khacgioi(binh, binh)
Mô hình cực tiểu của chuong trinh nay 1a {khacgioi(an, binh), nam(an)} chính là Ä⁄ Do đó A⁄Z là mô hình bền vững Có thể kiểm tra rằng mô hình bền vững này là duy nhất và nó chính là ngữ nghĩa mô hình bền vững của P hay ngữ nghĩa tập
trả lời của P
1.3 CÁC TÍNH CHÁT CỦA NGỮ NGHĨA
Trang 26Tính chất 2 Cho P là chương trình logic thông thường Lúc đó: Mọi mô hình bền vững của P đều là mô hình của P Mô hình bền vững của P là mô hình cực tiêu của P
Tính chất 3 Đối với mỗi mệnh đề của chương trình logic thông thường chỉ chứa duy nhất một đích con dương thì Ø là mô hình bền vững duy nhất của P
Tính chất 4 Các mô hình bền vững là không thê so sánh nhau được, nghĩa là nêu A⁄¡ và Ä⁄2 là các mô hình bền vững của chương trình logic P thì Ä⁄¡ # Ä⁄2 và M› # Mi
Một chương trình logic thông thường có thể không có mô hình bền vững và cũng có thể có nhiều mô hình bền vững
1.4 TIEU KET CHUONG 1
Chương một đã trình bày các khái niệm cơ sở của chương trình logic, các ví dụ minh họa bao gồm cú pháp của chương trình logic, ngữ nghĩa của chương trình logic xác định, ngữ nghĩa tập trả lời của chương trình logic thông thường được Gelfond - Lifschitz đề xuất và các tính chất của ngữ nghĩa Những khái niệm này là kiến thức cơ sở và cần thiết trong việc tìm hiểu, nghiên cứu các chương tiếp theo
Trang 27Chương 2
CHUONG TRINH LOGIC CO CHUA CAC HAM KET TAP
Chương 2 trình bày một mở rộng của chương trình logic, cụ thể là các hàm kết tập trong chương trình logic Chương này sẽ làm rõ cú pháp, ngữ nghĩa và các tính chất ngữ nghĩa của chương trình logie có chứa các hàm kết tập để làm cơ sở cho việc triển khai ứng đụng ở chương 3 [3] [4] [5] [6] [7]
2.1 CÚ PHÁP CHƯƠNG TRÌNH LOGIC CÓ CHỨA CÁC HÀM KÉT TẠP
Trong phần này sẽ trình bày các định nghĩa về tập ký hiệu, tập nền, hàm kết tập, nguyên tố kết tập, chương trình logic có chứa hàm kết tập và quy tắc an toàn
2.1.1 Tập ký hiệu, tập nền
Định nghĩa 2.1 7ập ký hiéu la tap co dang {Vars : Conj}, trong do Vars là danh sach cac bién va Conj 1a hdi cua cac literal Tap nén la tap co dang ự Conj) trong đó 7 là danh sách các hang va Cony la hội của các literal nền
Ta dùng khái niệm tap để chỉ đó là tập ký hiệu hoặc tập nền
Vi du 2.1 Cho nguyén té hsinh(X) mé ta_X 1a mét hoc sinh, nguyên tổ điem(Y,Y,Z) m6 ta hoc sinh XY, có điểm mén hoc Y 1a Z, nguyén té thich(X,Y) mé ta hoc sinh XY yêu thích môn học Y Cho tập sự kiện:
hsinh(phuc) — hsinh(loc) <— hsinh(tho) —
diem(phuc, toan, 85) <— diem(phuc, ly, 75) — diem(phuc,van, 80) — diem(loc, toan, 90) <— diem(loc, ly,60) <— diem(loc, van, 80) <— diem(tho, toan, 85) — diem(tho, ly, 90) — diem(tho, van, 95) — thich(phuc, toan) <— thich(phue, ly) <— thich(loc, toan) <— thich(loc, van) < thich(tho, van) —
Trang 28Tập ký hiệu {Y, Y: /ch(Y,Y), điem(Y,Y,Z), Z>80} lúc đó Tập nền tương ứng là tập các bộ: {<X, Y: fhich(X,Y), điem(X,Y,Z) Z>80>} với X e {phuc, loc,
tho}, Y € {toan, ly, van}, Z € {60, 75, 80, 85, 90, 95}
2.1.2 Ham két tap
Định nghia 2.2 Ham két tập có dạng ƒ{Š), trong đó Š là một tập và ƒ là một hàm kết tap trong số các hàm #count, #max, #min, #sum, #times Trong đó:
Hàm #count dém sé phan tt trong tap S
Ham #max tim phan tử lớn nhất trong tập S (không xác định nếu S réng) Hàm #min tìm phần từ nhỏ nhất trong tập S (không xác định nếu Š rỗng) Ham #sum tinh tong cdc phan tử trong tập S (phần tử là số nguyên không âm) Ham #time tinh tích các phần tử trong tập S (phần tử là số nguyên dương) Ví dụ 2.2 Với tập sự kiện đã cho ở ví dụ 2.1 ta có thể thực hiện một số yêu cầu về tính toán trong tập hợp cụ thể như sau:
#counf{X: thich(Y,Y), điem(X,Y,Z), Z>80}: Đêm số học sinh có điểm của môn học mình yêu thích lớn hơn 8.0 điểm
#eount{X: diem(X,ly,Z), Z>80}: Dém số học sinh có điềm môn Lý lớn hơn
8.0 điểm
#sum{Z, Y: diem(phuc,Y,Z)}: Tính tông điểm các môn học của học sinh
Phúc
#sum{Z, X: điem(Y,toan,Z)}: Tính tổng điểm mơn Tốn của tat ca học sinh
#max{Z: diem(X,iy,Z)}: Điểm lớn nhất của môn Lý
#max{Z, Y: điem(loc,Y,Z)}: Điểm lớn nhất của học sinh Lộc #min{Z: diem(V,toan,Z)}: Điềm thấp nhất của mơn Tốn #min{Z, Y: diem(tho,Y,Z)}: Điểm thấp nhất của học sinh Thọ
Trang 292.1.3 Nguyên tổ kết tập Định nghĩa 2.3 Nguyên tổ kết tập co dang Lg Pì f(S)p; Rg trong đó f(S) là một hàm kết tập, Dị.D›;€ {=.<<>.>} „ Ùg và Rg là các hạng thức và gọi là giới hạn trái và giới hạn phải (có thê chỉ có giới hạn trái Lg p¡ hoặc chỉ có giới hạn phải Pp, Rg)
Ta dùng khái niệm øguyên tố để chỉ đó là nguyên tổ thông thường hoặc nguyên tố kết tập Một literal 7 là một nguyên tố 44 hoặc phú định của một nguyên tô 4 Nếu 4 là nguyên tô kết tập thì L được gọi là literal kết tập
Ví dụ 2.3 Với tập sự kiện đã cho ở ví dụ 2.1 ta có thê xây dựng một số nguyên tố kết tập: #count{X: thich(X,Y), điem(X,Y,Z), Z>80} > 2 4 <#count{X: diem(X,ly,Z), Z>80} 210 < #sum{Z, Y: diem(phuc,Y,Z)} < 270 #sum{Z, X: diem(X, toan,Z)} =K #max{Z: diem(X,ly,Z)} > 85 #max{Z, Y: diem(loc,Y,Z)} < 90 #min{Z: diem(X,toan,Z)} =H #min{Z, Y: diem(tho,Y,Z)} > 65
2.1.4 Quy tắc kết tập, chương trình logic có chứa hàm kết tập
Định nghĩa 2.4 (Quy tắc kết tập) [5] Một quy tắc kết tập (r) có dạng tông quát:
ái V V đ„ & bị, , bự, nof bạ ,ị , Of bạ,
Trong đó: z¡ ,a„ là những nguyên tố thông thường; ?¡,bz, ,ð„ là những nguyên tố (n > 0,zm > k >0,n+m > 0)
Trang 30Đặt Hứ) = { ai ,au } và BŒ) = { bị ,.bựy, not Đy,¡ , nof bạ, }
Một quy tắc với thân rong (k = m = 0), duge gọi là sự kiện và ký hiệu «— có thể bỏ qua
Một quy tắc với phần đầu rỗng (n = 0), được gọi là ràng buộc toàn vẹn hay còn gọi là ràng buộc mạnh
Định nghĩa 2.5 (Ràng buộc mạnh) [5] Mot rang buộc mạnh có dạng: <1}, Lz , Lm Trong d6 m 2 1 và cac L; (i = 1, , m) 1a cac literal
Rang buéc manh cé phan dau réng quy woe bang false nén phan than cua ràng buộc (L¡, L¿, , L„) không được nhận giá trị đúng
Trong khi các ràng buộc mạnh (ràng buộc toàn vẹn) luôn phải được thỏa mãn thì trong mở rộng ràng buộc bởi một cấu trúc khác gọi là ràng buộc yếu được định nghĩa như sau:
Định nghĩa 2.6 (Ràng buộc yếu) [5] Một ràng buộc yếu có đạng: < 11, L2, , Lm [w:]]
Trong đó m > 1 và các LiŒ =1, , m) là các literal, w là trọng số và l là mức (w, 1 1a hằng hoặc biến và có giá trị là số nguyên đương); w, l có thể được bỏ qua và mặc định là bằng 1
Rang buộc yếu cho phép ta biểu điễn một số các bài toán tối ưu theo một cách tự nhiên và đơn giản, nó biểu diễn một mức độ mong muốn nào đó, tức là chúng có thể được thỏa mãn khi có thể nhưng chúng không loại bỏ bất kỳ mô hình nào
Chúng được gọi là các mô hình tốt nhất của (P,W) Các ràng buộc yếu được đánh giá mức độ phụ thuộc vào sự quan trọng của chúng (mức độ càng cao, ràng buộc đó càng quan trọng) Với các mức độ này, các mô hình tốt nhất sẽ tối thiêu hóa tông các mức độ của các ràng buộc yêu Cũng có thể đặt mức ưu tiên cho các ràng
Trang 31buộc yếu Ngữ nghĩa sẽ tối ưu hóa đầu tiên là các ràng buộc ở mức ưu tiên cao nhất, sau đó đến các ràng buộc ở mức ưu tiên thấp hơn và tiếp tục như vậy
Mức độ đánh giá và mức độ ưu tiên có thể là các biến, cung cấp rằng các biến này cũng xuất hiện trong các phan ti dong trong Conj (Li, L2 Lm) Nguoi sử dụng có thể bỏ qua mức độ đánh giá, mức ưu tiên hoặc cả hai, nhưng tất cả các ràng buộc yếu phải có cùng một dạng cú pháp như nhau trong chương trình
Ví dụ 2.4 Cho nguyên tô #siz(V) mô tả XY là một học sinh, nguyên tô điem(Y,Y,Z) mô tâ học sinh X, có điểm môn học Y là Z, nguyên tổ //ch(X,Y) mô tả học sinh Y yêu thích môn học Y đ/„zyen(Y,Y) mô tả học sinh X được chọn vào đội tuyển Y
Với tập sự kiện cho ở ví dụ 2.1, ta xây dựng các quy tắc chọn đội tuyên học sinh giỏi cho các mơn Tốn, Lý, Văn theo các yêu cầu:
a Một học sinh có thể được chọn vào đội tuyên Toán hoặc Lý hoặc Văn b Mỗi học sinh chỉ được tham gia một đội tuyển
c Một học sinh được chọn vào đội tuyển Văn khi học sinh đó phải yêu thích môn Văn
d Chọn một học sinh vào đội tuyển Toán nên chọn học sinh có tổng điểm
hai mơn Tốn, Lý lớn hơn 17.5 điểm
e Chọn một học sinh vào đội tuyển Lý nên chọn học sinh có tông điểm hai
mơn Tốn, Lý lớn hơn 16.0 điểm
Với các yêu cầu trên, ta có thê biểu diễn bởi các quy tắc kết tập a, Ð, e, đ, e
như sau:
a: dtuyen(X,toan) v dtuyen(X, ly) v dtuyen(X,van) < hsinh(X) b: < dtuyen(X,Y), not #eount{Z: dtuyen(Z, Y)} = 1
6 « đứiyen(X, van), not thich(Y, van)
Trang 32Trong đó quy tắc (2) là quy tắc kết tập ở dạng tông quát, các quy tắc còn lại là các ràng buộc và quy tắc (5), (c) là các ràng buộc mạnh (bắt buộc phải thỏa mãn), quy tắc (2), (e) là các ràng buộc yếu (mong muốn đạt được)
Ví dụ 2.5 Xét bài toán xây dựng 2 đội ngõ làm việc cho hai đự án với các yêu cầu: a Các thành viên của cùng dự án nên biết nhau
b Các nhân viên là vợ/chồng không được làm việc cùng một dự án c Các thành viên trong cùng dự án phải có kỹ năng khác nhau
Giả sử thông tin về nhân viên, biết nhau, kỹ năng và kết hôn lần lượt được xác định thông qua một số sự kiện đầu vào của các nguyên té nv(X), bietnhau(X,Y), cung kH(X,Y), kethon(X,Y)
nv(a) — nv(b) — nv(c) ©— nv(d) — nv(e) —
bietnhau(ab) — bietnhau (b,c)<© biefnhau (c,đ) — bietnhau (de) cung km(a,b) — kethon(c,d) <— thanhvien(X, p1) v thanhvien(X, p2) — nv(X)
< thanhvien (X,P), thanhvien (Y,P), X != Y, not bietnhau (X,Y) [1:1] < thanhvien (X,P), thanhvien (Y,P), X \= Y, kethon (X,Y) [1:2] < thanhvien (X,P), thanhvien (Y,P), X \= Y, cung_kn (X,Y) [1:2]
Ta thấy có 3 quy tắc cuối cùng là các ràng buộc yếu tương ứng lần lượt với 3 yêu cầu đã cho Hai ràng buộc yếu cuối cùng mức độ quan trọng cao hơn ràng buộc yếu thứ nhất vì theo hai yêu cầu b và c ở trên thì mức độ ràng buộc là “không được” và “phải” còn mức độ của ràng buộc ở yêu cầu a là “nên”, do đó mức độ ràng buộc sé it quan trong hon
Quy tắc ràng buộc yếu thứ nhất để chỉ 2 nhân viên cùng chung một đội mà không quen biết nhau thì không đạt yêu cầu nhưng vẫn có thê xảy ra với mức đánh
Trang 33giá và mức ưu tiên [1:1] Quy tắc ràng buộc yếu thứ hai để chỉ 2 nhân viên cùng một đội mà là vợ chồng thì không đạt yêu cầu nhưng vẫn có thể xảy ra với mức đánh giá và mức ưu tiên [1:2] Quy tắc ràng buộc yếu thứ ba để chỉ 2 nhân viên cùng một đội mà có kỹ năng giống nhau thì không đạt yêu cầu nhưng vẫn có thể xảy ra với mức đánh giá và mức ưu tiên [1:2]
Định nghĩa 2.6 (Chương trình logic có chứa hàm kết tập) [5] Một chương trình logic có chứa quy tắc kết tập gọi là chương trình logic có chứa hàm kết tập
Từ đây về sau ta sẽ gọi quy tắc có nguyên tố kết tập là quy tắc và chương trình có chứa hàm kết tập là chương trình
Vi du 2.6 Voi tap su kién da cho 6 vi du 2.1 và yêu cau tuyén chọn đội tuyên học sinh giỏi ở ví đụ 2.4 ta có chương trình logic có chứa hàm kết tập như sau:
hsinh(phuc) + hsinh(loc) <— hsinh(tho) —
diem(phuc, toan, 85)< diem(phuc, ly, 75) <— diem(phuc,van, 80) — diem(loc, toan, 90) <— diem(loc, ly,60) <— diem(loc, van, 80)<— diem(tho, toan, 85) — diem(tho, ly, 90) — diem(tho, van, 95) <— thich(phuc, toan) <— thich(phue, ly) <— thich(loc, toan) <— thich(loc, van) — thich(tho, van) —
dtuyen(X,toan) v dtuyen(X, ly) v dtuyen(X,van) < hsinh(X) < dtuyen(X,Y), not #eount{Z: dtuyen(Z, Y)} = 1
< dtuyen(X, van), not thich(X, van)
Trang 342.1.5 Quy tắc an toàn, chương trình an toàn
Định nghĩa 2.7 Biến toàn cục, biến cục bộ, quy tắc an toàn được định nghĩa như
sau:
1 Biến toàn cục của quy tắc z là biến xuất hiện trong nguyên tố thông thường của 7
2 Biến cục bộ của quy tắc r là biến chỉ xuất hiện trong hàm kết tập của z 3 Một quy tắc z được gọi là an toàn nêu thỏa mãn các điều kiện sau đây:
() Mỗi biến toàn cục của r đều xuất hiện ở literal thông thường dương trong than cua r;
ŒÐ Nếu mỗi biến cục bộ của r xuất hiện trong tập ký hiệu {ƒ2rs : Cory} thì cũng xuất hiện 6 literal dong trong Conj;
(iii) Giới hạn đưới, giới hạn trên của nguyên tố kết tập trong r là một hằng hoặc một biến toàn cục
Ví dụ 2.7 Xét các quy tắc sau:
rs PX) & qŒ, Y, V), #max{Z : r(Z), not a(Z, V)} > ¥ 1! PpŒ) < q(Œ, Y, V), #sum{Z : not a(Z, S)} > Y 1: PpŒ) < q(Œ, Y, V), #min{Z : r2), not a(Z, V)} > T
Quy tắc r¡:
() Mỗi biến toàn cục (X, Y, V) déu xuất hiện ở literal thông thường dương trong thân (g(Y, Y, I))của của quy tắc r¡
(0 Biến cục bộ (Z) của r¡ xuất hiện trong tập ký hiệu {Z : r(Z), not a(Z, V)} cũng xuất hiện 6 literal dong trong Conj (r(Z));
(iii) Gidi han phai (Y) ca nguyén t6é két tap trong r7 (#max{Z : r(Z), not a(Z, V )} > Y) la mot bién toan cuc
Vậy quy tắc r; là an toàn
Trang 35Quy tắc z2:
Mỗi biến cục bộ (Z, S) của rz xuất hiện trong tập ký hiệu {Z : not a(Z, S)} nhưng không xuất hiện @ literal duong trong conj (trong conj khéng co literal dương) nên r2 khơng an tồn (không thỏa mãn điều kiện 2)
Quy tắc 72:
Giới hạn đưới T không phải hằng và cũng không phải biến toàn cục nên quy tac r3 khơng an tồn (khơng thỏa mãn điễu kiện 3)
Một chương trình P được gọi là an toàn nếu tất cả quy tắc của P đều an toàn Sau này chúng ta giả định rằng các chương trình đều an toàn
2.2 NGU NGHIA TAP TRA LOI CUA CHUONG TRINH LOGIC CO CHUA HAM KET TAP
Trong phần này sẽ trình bày các khái niệm về vũ trụ Herbrand, cơ sở
Herbrand, hiện hành, thể hiện, mô hình, phép biến đổi Gelfond - Lifschitz đối với
chương trình logic có chứa hàm kết tập và thông qua đó trình bày ngữ nghĩa của tập trả lời của chương trình logic có chứa các hàm kết tập [3], [5], [6]
2.2.1 Vũ trụ Herbrand và Cơ sở Herbrand
Định nghĩa 2.8 Vũ trụ Herbrand của ? (với P 1a chương trình logic có chứa hàm kết tập), ký hiệu Up, là tập các hằng xuất hiện trong P
Dinh nghia 2.9 Co sé Herbrand B> là tập các nguyên tố (thông thường) nền được xây dựng từ các vị từ của P có đối là các hằng trong Up
Ký hiệu uF CU, la tap cac số tự nhiên xuất hiện trong Up Voi X là một tap hop, ky hiệu z là tập các đa tập trên các phần tử của XY Miền và ngữ nghĩa của các hàm kết tập được xem xét trong chương này bao gồm:
Trang 36#sum: được định nghĩa trên 2° , tinh tong cac s6 trong tập hợp, băng 0 nêu tập rỗng N #times: dugc định nghĩa trên ?” , tinh tich các số trong tap hop, bang 1 đối voi tap réng.0 ~U, \
#min: được định nghĩa trên 2 ”\{Ø}, tìm phần tử nhỏ nhất trong tập hợp
#max: được định nghĩa trên oF \{Ø} tim phần tử lớn nhất trong tập hợp Nếu đối số của hàm tổng hợp không thuộc miền của nó thì hàm kết tập cho
kết quả là sai (ký hiệu L )
Ví dụ 2.8 Xét chương trình logic P sau:
hsinh(phuc) — hsinh(loc) — hsinh(tho) —
diem(phuc, toan, 85) <— diem(phuc, ly, 75) — diem(phuc,van, 80) —
diem(loc, toan, 90) <— diem(loc, ly, 60) — diem(loc, van, 80) — diem(tho, toan,85) < diem(tho, ly,90) <— điem(tho, van, 95) —
thich(phuc,toan) <— thich(phue, ly) —
thich(loc, toan) <— thich(loc, van) <— thich(tho, van) — dtuyen(X,toan) v dtuyen(X, ly) <— hsinh(X), #sum{Z: diem (X,Y,Z), Y<>van}
> 155
Vii tru Herbrand cua P la:
Up= {phuc, loc, tho, toan, ly, van, 60, 75, 80, 85, 90, 95}
Cơ sở Herbrand của ?P là:
Bp =_ f{hsinh(phuc), hasinh(loc), — hsinh(tho), điem(phuc,toan,S5),
điem(phuc,ly,75), điem(phucvan, 0), điem(loctoan,90) điem(ioc,ly,60), diem(loc, van, 80), diem(tho, toan, 85), diem(tho, ly, 90), diem(tho,van,95),
Trang 37thich(phuc,toan), thich(phuc,ly), thich(loctoan), thich(loc,van), thich(tho,van), đtuyen(phuc, toan), đtuyen(phuc, van), }
UZ = {60, 75, 80, 85, 90, 95}
2.2.2 Phép thé, hién hanh, hién hanh nén
Định nghĩa 2.10 Phép thé 1a mét anh xa tir tap cac bién dén tap Up cac hang trong P Phép thế từ tập các biến toàn cục của quy tắc r dén tap Up goi la phép thể tồn cục đơi với quy tắc r Phép thế từ tập các biến cục bộ của tập ký hiệu Š đến tập Ủp
gọi là phép thế cục bộ đối với S
Định nghĩa 2.11 Cho tập ký hiệu không chứa biến toàn cục Š = {ƒars: Conj}, một
hiện hành của tập S là một tập nền inst(S) = lữ am) :y(Conj)) với y là phép thế
cục bộ đối với 8
Định nghĩa 2.12 Một hiện hành nền của quy tắc r có được qua 2 bước: (1) Phép thế toàn cục ơ đối với r được áp dụng lần đầu trên z (2) Mọi tập ký hiệu S trong ø() được thay thế bởi hiện hành ¿zs/(S) Ky hiéu Ground(P) la tap tat cả các hiện hành nền của các quy tắc của P Ví dụ 2.9 Xét chương trình P sau đây:
hsinh(phuc) — hsinh(loc) <— hsinh(tho) —
diem(phuc, toan, 85) <— diem(phuc, ly, 75) — diem(phuc,van, 80) —
diem(loc, toan, 90) — diem(loc, ly, 60) — diem(loe, van, 80) — diem(tho, toan,85) <— diem(tho, ly,90) <— diem(tho, van, 95) —
thich(phuc, toan) <— thich(phuc, ly) <—
thich(loc, toan) <— thich(loc, van) <— thich(tho, van) — dtuyen(X,toan) v dtuyen(X,ly) < hsinh(X), #sum{Z: diem (X,Y,Z), Y<>van}
Trang 38Ngữ nghĩa của một tập, một hàm kết tập, một nguyên tố kết tập dưới một thể hiện, tương ứng là một đa tập, một giá trị và một giá trị chân lý
Phép định giá [(S) của tập Š theo 7 là đa tập của hằng đầu tiên trong thành phần đầu của các phần tử thuộc Š mà hội của chúng là đúng theo 7 Chính xác hơn,
đặt Si = {filŒ_fs, ,fu: Con) e Š A Conj là dung theo I} thi [(S) là đa tập
[: (atest, eS; |
Phép định giá 7ƒ(S)) của hàm kết tap ((S) theo 7 là kết quả của việc áp dụng hàm ƒ trên /(S) Nếu đa tập /(S) không nằm trong miền của ƒthì 7\S)) = L,
Một nguyên tố kết tập 4 = Lg p, f(S) p Re là đúng theo 7 nếu:
() 1ý(S)) z L, và
(1) Quan hệ Lø p¡ 1(ƒ(Š)) và I(ƒ(5))p; Rg đều thoả mãn; còn ngược lại thì A sai
Ví dụ 2.10 Cho tập sự kiện sau:
hsinh(phuc) — hsinh(loc) <— hsinh(tho) — diem(phuc, toan, 85)< diem(phuc, ly, 75) —
diem(phuc, van, 80) — diem(loc, toan, 90) <— diem(loc, ly,60) <— diem(loc, van, 80)<— diem(tho, toan,85) < diem(tho, ly,90) <—
diem(tho, van, 95) <— thich(phuc, toan) <— thich(phue, ly) — thich(loc, toan) <— thich(loc, van) <— thich(tho, van) <— Voi S = {Z, Y: diem(X,Y,Z),Y¥<>van}, ta co: I(S) = [<85>,<75>],
[<90>,<60>], [<85>,<90>]
Voi f(S) = #sum{Z, Y: diem(X,Y,Z),Y<>van} Ta có: IỢ(S) =
{160,150,175}
Trang 39Với nguyên tố A là : #sưm{Z, Y: điem(X,Y,Z)Y<>van} >155, lúc đó tương
ung 160 > 152 = true, 150 >155 = false, 175>155 = true
Định nghĩa 2.14 Một mô hình của chương trình P là một thê hiện A⁄Z của P sao cho mọi quy tắc r thuộc grouna(P) là đúng theo A⁄ Mô hình A⁄Z của P là mô hình cực tiểu nếu không có mô hình N của P mà X là tập con thực sự của À⁄
Ví dụ 2.11 Cho chương trình P sau đây:
hsinh(phuc) — hsinh(loc) — hsinh(tho) —
diem(phuc, toan,85) <— diem(phuc, ly, 75) <— diem(phuc, van, 80) — diem(loc, toan, 90) <— diem(loc, ly, 60) <— diem(loc, van, 80) — diem(tho, toan,85) <— diem(tho, ly,90) <— điem(tho, van, 95) —
thich(phuc,toan) <— thich(phuce, ly) —
thich(loc, toan) <— thich(loc, van) <— thich(tho, van) — dtuyen(X,toan) v dtuyen(X,ly) < hsinh(X), #sum{Z: diem (X,Y,Z), Y<>van}
> 155
Xét một thể hiện A⁄ = {ñimh(plme),hsinh(oe) hsinh(tho),
diem(phuc,toan,85), diem(phuc,ly,75), diem(phuc,van, 80), diem(loc,toan,90), diem(loc, ly, 60), diem(loe, van, 80), diem(tho, toan, 85), diem(tho, ly, 90),
diem(tho, van, 95), thich(phuc,toan), thich(phuc,ly), thich(loc,toan), thich(loc, van), thich(tho, van), dtuyen(phuc, ly), dtuyen(tho, ly)}
Voi hsinh(phuc), ta co: #sum{Z, Y: diem(phuc,Y,Z),Y<>van} = 160, nên nguyén t6 #sum{Z, Y: diem(phuc,Y,Z),Y<>van} > 155 có giá trị bằng true —> dtuyen(phuc,toan) co gia trị true hoặc dtuyen(X,ly) co gia tri true
Trang 40Voi hsinh(tho), ta co: #sum{Z, Y: diem(tho,Y,Z),Y<>van} = 175, nên nguyén t6 #sum{Z, Y: diem(tho,Y,Z),¥<>van} > 155 co gid tri bang true > dtuyen(tho, toan) co gia tri true hoac dtuyen(tho, ly) co gia tri true
Vậy M⁄ là mô hình của P và không có tập con thực sự của Ä⁄ nén M dugc goi là là mô hình cực tiểu của P
2
Một thể hiện Y c 8p được gọi là đóng trong chương trình logic dương P không chứa kết tập nếu mọi quy tắc r e Grouná(P), Hự) ¬X #@Ø_ khi BŒ) c X Thê hiện Y c Bp được gọi là zẩp trả lời của chương trình logic đương P không chứa kết tập nếu nó là tập cực tiêu trong sé tat cả các thể hiện đóng trong P
Cho chương trình P¡ có 1 quy tắc:
avbve
P} co 3 tap tra loi {a}, {b}, {c}