Điều đó có nghĩa là bằng phương pháp chứng minh bác bỏ, chỉ sử dụng luật phân giải ta có thể chứng minh được một công thức có là hệ quả logic của một tập các công thức cho trước hay khôn[r]
(1)Chương 4
BIỂU DIỄN BÀI TOÁN BẰNG LOGIC VÀ CÁC PHƯƠNG PHÁP CHỨNG MINH
Như ta biết, khơng thể có phương pháp giải vấn đề tổng qt cho tốn Có thể phương pháp phù hợp cho toán này, lại khơng phù hợp cho lớp tốn khác Điều có nghĩa nói tới tốn, ta phải ý đến phương pháp biểu diễn với phương pháp tìm kiếm khơng gian toán nhận được.
1 Biểu diễn toán nhờ khơng gian trạng thái (có chiến lược tìm kiếm đồ thị biểu diễn vấn đề)
2 Quy toán
3 Biểu diễn vấn đề nhờ logic hình thức (có phương pháp suy diễn logic)
và phần trình bày phương pháp biểu diễn vấn đề nhờ logic hình thức phương pháp giải vấn đề cách biểu diễn
Logic hình thức thường dùng để thu gọn trình tìm kiếm lời giải Trước giải vấn đề, nhờ phân tích logic, chứng tỏ tốn giải hay khơng?
Ngồi ra, kết luận logic cần cách tiếp cận dựa khơng gian trạng thái quy tốn toán Chẳng hạn, phương pháp dựa không gian trạng thái, kết luận logic dùng để kiểm tra trạng thái có phải trạng thái đích hay khơng?,
(2)Ví dụ
Ta dùng biểu thức logic để mô tả mối quan hệ thành phần tam giác sau:
1) a b c p 2) b p c a 3) a p c b 4) a b p c 5) S c hc 6) a b C c 7) a b C S 8) a b c p S 9) S hc c
(Trong đó: a, b, c ký hiệu cạnh, A, B, C ký hiệu góc tương ứng, p là ký hiệu chu vi, hc đường cao xuất phát từ đỉnh C tam giác) Giả sử ta biết cạnh a, b góc C Ta có kết luận đường cao hc không?
1 BI ỂU DI ỄN VẤN ĐỀ NHỜ LOGIC HÌNH THỨC 1.1 Logic mệnh đề
Đây kiểu biểu diễn tri thức đơn giản gần gũi a) Mệnh đề khẳng định, phát biểu mà giá trị có thể là sai
Ví dụ
phát biểu "1+1=2" (có giá trị đúng) phát biểu "Trời mưa"
(3)nhiều yếu tố khác quan khác Chẳng hạn mệnh đề : "Con người nhảy cao 5m với chân trần" trái đất , cịn hành tinh có lực hấp dẫn yếu sai.)
b) Biểu thức logic
- Ta ký hiệu mệnh đề chữ la tinh a, b, c, ký hiệu gọi biến mệnh đề
- Biểu thức logic định nghĩa đệ quy sau:
Các logic (True, False) biến mệnh đề biểu thức logic Các biểu thức logic kết hợp với toán tử logic (phép tuyển (), phép hội
( ), phủ định ( , ~, ❑ ), phép kéo theo (, ), phép tương đương (,
)) biểu thức logic
Tức E F biểu thức logic E F, E F, E F, E F biểu thức logic
Thứ tự ưu tiên phép tốn logic: , , , , Ví dụ Một số biểu thức logic:
1) True 2) p
3) p (p r)
- Biểu thức logic dạng chuẩn: biểu thức xây dựng từ biến mệnh đề phép tốn , ,
Ví dụ p ( p r)
(Chúng ta sử dụng logic mệnh đề chương trình nhiều lần (như cấu trúc lệnh IF THEN ELSE) để biểu diễn tri thức "cứng" máy tính ! )
(4)T T F T T T T T
T F F T F F F F
F T T T F T T F
F F T F F T T T
Nhận xét
- Mọi biểu thức logic chuyển biểu thức logic dạng chuẩn nhờ vào:
p q p q
- Nếu có n biến mệnh đề biểu thức logic bảng chân trị có 2n trường hợp khác biến mệnh đề
d) Đồng đúng
Một đồng biểu thức logic ln ln có giá trị True với giá trị biến mệnh đề biểu thức logic
Ví dụ (Có thể kiểm tra cách dùng bảng chân trị) 1) p p
2) p
3) (p q) (p r) q r
Ta thấy biểu thức có dạng VTVP ln có giá trị True (T) với giá trị a, b; có trường hợp để a b có giá trị False (F) a: True b: False Như vậy, để chứng minh biểu thức 3) đồng đúng, ta cần chứng minh b: F a: F, khơng có trường hợp a: T b: F
Thật vậy, giả sử VP: F nghĩa q: F r: F Xét trường hợp p: - Nếu p: T VT: F
- Nếu p: F VT: F
Do biểu thức 3) đồng
Bài tập Biểu thức số biểu thức sau đồng đúng? 1) p q r p q
2) (p q) p
(5)1.2 Một số luật đại số
Sau số đồng thường gặp a) Luật phản xạ (cho phép tương đương): p p b) Luật giao hoán
- phép tương đương: p p - phép hội: p q q p - phép tuyển: p q q p c) Luật bắc cầu:
- phép kéo theo: (p q) (q r) (p r)
- phép tương đương: (p q) (q r) (p r) D) Luật kết hợp:
- phép hội: p (q r) (p q) r - phép tuyển: p (q r) (p q) r e) Luật phân phối:
- phép phép : p (q r) (p q) (p r) - phép phép : p (q r) (p q) (p r) f) Phần tử trung hoà:
- (False) phần tử trung hoà cho phép : p p - (true) phần tử trung hoà cho phép : p p g) Triệt tử
(6)h) Tính luỹ đẳng
- phép : p p p - phép : p p p i) Luật Demorgan
(p q) p q (p q) p q
j) Một số luật khác cho phép kéo theo - (p q) (q p) (p q) - (p q) (p q)
- p q p q k) (p) p
1.3 Logic vị từ
Biểu diễn tri thức mệnh đề gặp phải trở ngại ta can thiệp vào cấu trúc mệnh đề Hay nói cách khác mệnh đề khơng có cấu trúc Điều làm hạn chế nhiều thao tác suy luận
Do đó, người ta đưa vào khái niệm vị từ lượng từ (:với mọi, : tồn tại) để tăng cường tính cấu trúc mệnh đề
Trong logic vị từ, mệnh đề cấu tạo hai thành phần đối tượng tri thức và mối liên hệ chúng (gọi vị từ) Các mệnh đề biểu diễn dạng:
Vị từ (<đối tượng 1>, <đối tượng 2>, …, <đối tượng n>) Ví dụ
Để biểu diễn vị trái cây, mệnh đề viết lại thành : Cam có vị Ngọt Vị (Cam, Ngọt)
(7)Kiểu biểu diễn có hình thức tương tự hàm ngơn ngữ lập trình, đối tượng tri thức tham số hàm, giá trị mệnh đề kết hàm (thuộc kiểu BOOLEAN)
Với vị từ, ta biểu diễn tri thức dạng mệnh đề tổng quát, mệnh đề mà giá trị xác định thơng qua đối tượng tri thức cấu tạo nên
Ví dụ
1) Chẳng hạn tri thức : "A bố B B anh em người của A" biểu diễn dạng vị từ sau :
Bố (A, B) = Tồn Z cho : Bố (A, Z) (Anh(Z, B) Anh(B,Z)) Trong trường hợp này, mệnh đề Bố(A,B) mệnh đề tổng quát
Như ta có mệnh đề sở :
a) Bố ("An", "Bình") có giá trị (Anh bố Bình) b) Anh("Tú", "Bình") có giá trị (Tú anh Bình)
thì mệnh đề c) Bố ("An", "Tú") có giá trị (An bố Tú)
Rõ ràng sử dụng logic mệnh đề thơng thường ta khơng thể tìm mối liên hệ c a,b phép nối mệnh đề , , Từ đó, ta khơng thể tính giá trị mệnh đề c Sở dĩ ta khơng thể thể tường minh tri thức "(A bố B) có Z cho (A bố Z) (Z anh em C)" dạng mệnh đề thơng thường Chính đặc trưng vị từ cho phép thể tri thức dạng tổng quát
2) Câu cách ngơn "Khơng có vật lớn khơng có vật bé nhất!" biểu diễn dạng vị từ sau :
LớnHơn(x,y) = x>y NhỏHơn(x,y) = x<y
(8)3) Câu châm ngơn "Gần mực đen, gần đèn sáng" hiểu "chơi với bạn xấu ta thành người xấu" biểu diễn vị từ sau :
NgườiXấu (x) = y : Bạn(x,y) NgườiXấu(y)
Sử dụng vị từ làm tốn hạng ngun tử thay biến mệnh đề đưa ngôn ngữ mạnh mẽ so với biểu thức chứa mệnh đề Thực sự, logic vị từ đủ khả diễn tả để tạo sở cho số ngôn ngữ lập trình có ích Prolog (Programing Logic) ngôn ngữ SQL Logic vị từ sử dụng hệ thống suy luận hệ chuyên gia chẳng hạn chương trình chẩn đốn tự động y khoa, chương trình chứng minh định lý tự động 1.3.1 Cú pháp ngữ nghĩa logic vị từ
a Cú pháp Các ký hiệu
- Hằng: biểu diễn chuỗi ký tự bắt đầu chữ thường chữ số chuỗi ký tự đặt bao nháy Ví dụ: a,b, c, “An”, “Ba”,
- Biến: tên biến ln bắt đầu chữ viết hoa Ví dụ: X, Y, Z, U, V, - Vị từ: biểu diễn chuỗi ký tự bắt đầu chữ thường Ví dụ: p, q, r, s, like,
Mỗi vị từ vị từ n biến (n0) Các ký hiệu vị từ khơng có biến ký hiệu mệnh đề
Ví dụ: like(X,Y) vị từ hai biến u(X) vị từ biến
r vị từ không biến - Hàm: f, g, cos, sin, mother,
Mỗi hàm hàm n biến (n1) Ví dụ: cos, sin hàm biến - Lượng từ: (với mọi), (tồn tại)
(9)X, p(X) nghĩa có giá trị biến X để làm cho biểu thức p
- Các ký hiệu kết nối logic: (hội), (tuyển), (phủ định), (kéo theo), (kéo theo nhau)
- Các ký hiệu ngăn cách: dấu phẩy, dấu mở ngoặc dấu đóng ngoặc. Các hạng thức
Các hạng thức (term) biểu thức mô tả đối tượng Các hạng thức xác định đệ quy sau:
- Các ký hiệu ký hiệu biến hạng thức
- Nếu t1, t2, t3, ,tn n hạng thức f ký hiệu hàm n biến f(t1, t2, t3, ,tn) hạng thức Một hạng thức không chứa biến gọi hạng thức cụ thể (ground term)
Ví dụ: An ký hiệu hằng, mother ký hiệu hàm biến mother(“An”) hạng thức cụ thể
Các công thức phân tử
Chúng ta biểu diễn tính chất đối tượng, quan hệ đối tượng công thức phân tử (câu đơn)
Các công thức phân tử xác định đệ quy sau
- Các ký hiệu vị từ không biến (các ký hiệu mệnh đề) công thức phân tử
- Nếu t1, t2, t3, ,tn n hạng thức p vị từ n biến p(t1, t2, t3, ,tn) công thức phân tử
(10) Các công thức
Từ công thức phân tử, sử dụng kết nối logic lượng từ, ta xây dựng nên công thức (các câu)
Các công thức xác định đệ quy sau: - Các công thức phân tử công thức
- Nếu G H cơng thức biểu thức (GH), (GH), (G), (GH), (GH) công thức
- Nếu G cơng thức X biến biểu thức x (G), x (G) công thức
Các công thức công thức phân tử gọi câu phức hợp Các công thức không chứa biến gọi công thức cụ thể Khi viết công thức ta bỏ dấu ngoặc không cần thiết, chẳng hạn dấu ngoặc
Lượng từ phổ dụng (universal quantfier) cho phép mơ tả tính chất lớp đối tượng đối tượng mà không cần phi liệt kê tất đối tượng lớp Chẳng hạn sử dụng vị từ elephant(X) (đối tượng X voi) vị từ color(X, “Gray”) (đối tượng X có màu xám) câu “tất voi có màu xám” biểu diễn công thức: X (elephant(X) color(X, “Gray”))
Lượng từ tồn (existantial quantifier) cho phép ta tạo câu nói đến đối tượng lớp đối tượng mà có tính chất thõa mãn quan hệ Chẳng hạn cách sử dụng câu đơn student(X) (X sinh viên) inside(X, “P301”) (X phịng 301), ta biểu diễn câu “Có sinh viên phòng 301” biểu thức: x (student(X) inside(X, “P301”))
(11)literal Một công thức tuyển literal gọi câu tuyển Chẳng hạn, male(X) like(X,”Football”) câu tuyển
Trong công thức X (G), X (G) G cơng thức xuất biến X công thức G gọi xuất buộc Một công thức mà tất biến xuất buộc gọi cơng thức đóng
Ví dụ: Cơng thức X, p(X, f(a,X)) Y, q(Y) cơng thức đóng, cịn cơng thức X, p(X, f(Y,X)) khơng phải cơng thức đóng xuất biến Y công thức không chịu ràng buộc lượng tử (sự xuất Y gọi xuất tự do)
b Ngữ nghĩa
Cũng logic mệnh đề, nói đến ngữ nghĩa nói đến ý nghĩa cơng thức giới thực mà gọi minh họa Để xác định minh họa, trước hết ta cần xác định miền đối tượng (nó bao gồm tất đối tượng giới thực mà ta quan tâm)
Trong minh họa, ký hiệu gắn với đối tượng cụ thể miền đối tượng, ký hiệu hàm gắn với hàm cụ thể Khi hạng thức cụ thể định đối tượng cụ thể miền đối tượng Chẳng hạn An ký hiệu hằng, father ký hiệu hàm, minh họa An ứng với người cụ thể đó, cịn father(X) gắn với hàm ứng với X cha nó, hạng thức father(“An”) người cha An
Ngữ nghĩa câu đơn
(12)(“Lan”) có giá trị chân lý true false tùy thuộc thực tế Lan có phi sinh viên hay khơng
Ngữ nghĩa câu phức hợp
Khi xác định ngữ nghĩa câu đơn, ta xác định ngữ nghĩa câu phức hợp (được tạo thành từ câu đơn liên kết câu đơn kết nối logic) logic mệnh đề
Ví dụ: Câu student(“Lan”) student(“An”) nhận giá trị true hai câu student(Lan) student(An) có giá trị true, tức Lan An sinh viên
Ngữ nghĩa câu chứa lượng từ
Ngữ nghĩa câu X(G), G cơng thức xác định ngữ nghĩa công thức hội tất công thức nhận từ công thức G cách thay X đối tượng miền đối tượng Chẳng hạn, miền đối tượng gồm ba người {Lan, An, Hoa} ngữ nghĩa câu X, student(X) xác định ngữ nghĩa câu student(“Lan”) student(“An”) student(“Hoa”) Câu ba câu thành phần đúng, tức Lan, Hoa, An sinh viên Như vậy, công thức X (G) công thức nhận từ G cách thay X đối tượng miền đối tượng đúng, tức G cho tất đối tượng X miền đối tượng
(13)nhận từ G cách thay X đối tượng miền đối tượng
Các công thức tương đương
Cũng logic mệnh đề, ta nói hai cơng thức G H tương đương (GH) chúng sai minh hoạ Ngoài tương đương biết logic mệnh đề, logic vị từ có tương đương khác liên quan tới lượng từ Giả sử G công thức, cách viết G(X) nói cơng thức G có chứa xuất biến X Khi cơng thức G(Y) công thức nhận từ G(X) cách thay tất xuất X Y Ta nói G(Y) công thức nhận từ G(X) cách đặt tên lại (biến X đổi tên lại Y)
Chúng ta có tương đương sau đây: X (G(X)) Y (G(Y))
X (G(X)) Y (G(Y))
Đặt tên lại biến sau lượng từ phổ dụng (tồn tại), ta nhận công thức tương đương
2 (X (G(X))) X (G(X)) X (G(X)) X (G(X))
3 X (G(X) H(X)) X (G(X)) X (H(X)) x (G(X) H(X)) X (G(X)) X (H(X)) Bài tập
1) Giả sử ta thiết lập vị từ có đối số csg(C,S,G) biểu diễn câu: “Sinh viên S nhận điểm G học phần C” Vậy với giá trị cụ thể vị từ chẳng hạn csg(“Anhvan”, “An”, 8) diễn giải nào?
2) Giả sử ta có vị từ loves(X,Y) diễn giải là: “X yêu Y”, câu sau (biểu diễn logic vị từ) hiểu nào?
(14)3) Giả sử ta có vị từ:
dog(X) (“X chó”), cat(Y) (“Y mèo”), animal(Z) (“Z động vật”) Hãy biểu diễn câu sau logic vị từ: “chó, mèo động vật”
1.3.2 Chuẩn hố cơng thức
Từ câu phân tử, cách sử dụng kết nối logic lượng từ, ta tạo câu phức hợp có cấu trúc phức tạp Để dễ dàng cho việc lưu trữ câu nhớ thuận lợi cho việc xây dựng thủ tục suy diễn, cần chuẩn hoá câu cách đưa chúng dạng chuẩn tắc hội (hội câu tuyển)
Trong mục này, trình bày thủ tục chuyển câu phức hợp thành câu dạng chuẩn tắc hội tương đương
Thủ tục chuẩn hoá công thức bao gồm bước sau: a Loại bỏ kéo theo
Để loại bỏ kéo theo, ta cần thay công thức P Q công thức tương đương P Q, thay P Q ( P Q ) (P Q )
b Chuyển phủ định tới phân tử
Điều thực cách thay công thức vế trái công thức vế phải tương đương sau đây:
( P) P
(P Q) P Q (P Q) P Q (X (P)) X ( P) (X (P)) X ( P) c Loại bỏ lượng từ tồn tại
(15)(P(X,f(X))) Ví dụ: f(X)=X+1, X (P(X,f(X))) X (P(X, X+1)) nghĩa với giá trị X X+1 lớn X
Một cách tổng quát, giả sử Y(G) công thức công thức xét nằm miền tác dụng lượng từ X1, ,Xn Khi ta xem Y hàm n biến X1, ,Xn, chẳng hạn f(X1, ,Xn) Sau ta thay xuất Y công thức G hạng thức f(X1, ,Xn) loại bỏ lượng từ tồn Các hàm f đưa vào để loại bỏ lượng từ tồn gọi hàm Scholem
Ví dụ: Xét cơng thức sau
X (Y (P(X,Y)) U (V (Q(a,V) Y ( R(X,Y)))) (1)
Công thức Y (P(X,Y) nằm miền tác dụng lượng từ X, ta xem Y hàm X: f(X) Các công thức V (Q(a,V)) Y ( R(X,Y)) nằm miền tác dụng lượng tử X, U ta xem V hàm g(X,U) Y hàm h(X,U) hai biến X, U Thay xuất Y V hàm tương ứng, sau loại bỏ lượng từ tồn tại, từ công thức (1) ta nhận công thức:
X (P(X,f(X)) U (Q(a,g(X,U)) R(X,h(X,U)))) (2) d Loại bỏ lượng từ phổ dụng
Sau bước cơng thức cịn lại lượng từ phổ dụng xuất biến nằm miền tác dụng lượng từ phổ dụng Ta loại bỏ tất lượng từ phổ dụng, công thức (2) trở thành công thức:
P(X,f(X)) Q(a,g(X,U)) R(X,h(X,U))) (3)
Cần ý rằng, sau thực bước tất biến công thức xem chịu tác dụng lượng tử phổ dụng
e Chuyển tuyển tới literal
(16)hội câu tuyển nghĩa ta nhận công thức dạng chuẩn tắc hội Chẳng hạn, công thức (3) chuyển thành công thức sau:
(P(X,f(X)) Q(a,g(X,U))) (P(X,f(X)) R(X,h(X,U))) (4) f Loại bỏ hội
Một câu hội tất thành phần Do cơng thức dạng chuẩn tắc hội tương đương với tập thành phần Chẳng hạn, công thức (4) tơng đơng với tập hai câu tuyển sau:
P(f(X)) Q(a,g(X,U))
P(f(X)) R(X,h(X,U)) (5)
g Đặt tên lại biến
Đặt tên lại biến cho biến câu khác có tên khác nhau, chẳng hạn hai câu (5) có hai biến tên X, ta cần đổi tên biến X câu hai thành Z, câu (5) tương đương với câu sau:
P(f(X)) Q(a,g(X,U))
P(f(Z)) R(Z,h(Z,U)) (5’)
Như vậy, tri thức tập hợp cơng thức logic vị từ, cách áp dụng thủ tục ta nhận sở tri thức gồm câu tuyển (tức ta ln ln xem câu sở tri thức tuyển literal) Hoàn toàn tương tự logic mệnh đề, câu tuyển biểu diễn dạng kéo theo, vế trái kéo theo hội câu phân tử, vế phải tuyển câu phân tử Dạng câu gọi câu Kowlski, trường hợp quan trọng câu Kowlski câu Horn (luật if- then) Bài tập
1) Gọi vị từ nt(X) có nghĩa “X số nguyên tố” vị từ sl(X) có nghĩa “X số lẻ”
(17)Viết lại công thức sau lấy phủ định diễn gii ý nghĩa cơng thức
2)Biến đổi công thức sau dạng chuẩn tắc hội XY ((b(X) c(X)) (d(Y) b(Y))
3) Gọi p(X,Y,Z) có nghĩa là: Z=X*Y, vị từ biến tập số thực Khi tính chất giao hốn phép nhân X*Y=Y*X diễn tả sau:
X,Y (p(X,Y,Z)) p(Y,X,Z)
Hãy chuẩn hóa cơng thức (đưa dạng chuẩn tắc hội) 1.3.3 Các luật suy diễn
Tất luật suy diễn đưa logic mệnh đề logic vị từ cấp Bây ta đưa luật suy diễn quan trọng logic vị từ liên quan tới lượng tử phổ dụng
a Luật thay phổ dụng
(18)X (G) G[X/t]
Chẳng hạn, từ câu X, like(X, “Football”) (mọi người thích bóng đá), cách thay X An ta suy câu like(“An”, “Football”) (An thích bóng đá) b Hợp nhất
Trong luật thay phổ dụng, ta cần sử dụng phép biến hạng thức để nhận công thức từ cơng thức chứa lượng tử phổ dụng Ta sử dụng phép để hợp câu phân tử (tức để câu trả lời thành đồng nhất) Chẳng hạn xét hai câu phân tử like(“An”,Y) x, like(X, “Football”) mà đơn giản ta bỏ lượng tử phổ dụng Sử dụng phép [X/An Y/Football] hai câu trở thành đồng like(“An”, “Football”) Trong suy diễn, ta cần sử dụng phép hợp câu phép Chẳng hạn, cho trước hai câu
friend(X,”Ba”) good(X) (mọi bạn Ba tốt) friend(“Lan”,Y) ( Lan bạn của tất người)
Ta hợp hai câu friend(X,”Ba”) good(X) friend(“Lan”,Y) phép thay [X/Lan, Y/Ba]
friend(“Lan”,”Ba”) good(“Lan”) friend(“Lan”,”Ba”)
Từ hai câu này, theo luật Modus Ponens, ta suy câu good(“Lan”) (Lan người tốt)
(19)Với hai câu phân tử G H mà tồn phép cho G0 H0 trở thành đồng (G0=H0) G H gọi hợp được, phép gọi hợp tử G H Chẳng hạn, hai câu Like(An,y) Like(x, Football) hợp hợp tử [X/An, Y/Football] Vấn đề đặt với hai câu phân tử G H, chúng có hợp khơng có làm tìm hợp tử?
c Luật Modus Ponens tổng quát
Giả sử Pi, Pi’ (i=1, ,n) Q công thức phân tử cho tất cặp câu Pi, Pi’ hợp phép , tức Pi0=Pi0’ (i=1, ,n) Khi ta có luật:
(Pi Pn Q), Pi’, ,Pn’ Q’ Trong Q’=Q
Ví dụ: Giả sử ta có câu student(X) male(X) like(X,“Football”) và student(“Anh”), male(“Anh”) Với phép = [X/Anh], cặp câu student(X), student(“Anh”) male(X), male(“Anh”) hợp Do ta suy câu like(“Anh”, “Football”)
d Luật phân giải tổng quát
- Luật phân giải câu tuyển
Giả sử ta có hai câu tuyển A1 Am C B1 Bn D, Ai (i=1, , m) Bj (j=1, , n) literal, C D câu phân tử hợp phép , C=D Khi ta có luật:
A1 Am C, B1 Bn D A1’ Am’ B1’ Bn’ Trong Ai’=Ai (i=1, , m) Bj’=Bj (j=1, , n)
(20)Ví dụ: Giả sử ta có hai câu A=hear(X, “Music”) play(x, “Tennis”) B=play(“An”,Y) study(“An”) Hai câu play(X,“Tennis”) play(“An”, Y) hợp phép =[X/An, Y/Tennis] Do từ hai câu cho, ta suy câu hear(“An”, “Music”) study(“An”) Trong ví dụ này, hai câu A= hear(X, “Music”) play(X, “Tennis”) B= play(“An”, Y) study(“An”) phân giải phân giải thức chúng hear(“An”, “Music”) study(“An”)
- Luật phân giải câu Horn
Câu Horn (luật If- then) câu có dạng:
P1 Pm Q Trong Pi (i=1, , m; m 0) Q câu phân tử
Giả sử, ta có hai câu Horn P1 Pm S Q R1 Rn T, hai câu S T hợp phép , S=T ta có luật:
P1 Pm S Q, R1 Rn T
P1’ Pm’ R1’ Rn’ Q’ Trong đó, Pi’=Pi (i=1, , m), Rj’=Rj (j=1, , n), Q’=Q
Trong thực tế, thường sử dụng trường hợp riêng sau Giả sử S T hai câu phân tử, hợp phép Khi ta có luật:
P1 Pm S Q, T
P1’ Pm’ Q’ Trong Pi’=Pi (i=1, , m) Q’=Q
Ví dụ: Xét hai câu student(X) male(X) play(X, “Football”) male(“Ba”). Hai câu male(“Ba”) male(X) hợp với phép [X/Ba], từ hai câu ta suy student(“Ba”) play(“Ba”, “Football”)
1.3.4 Thuật toán hợp nhất
(21)Trong mục này, trình bày thuật tốn xác định hai biểu thức đơn cho trước có hợp hay khơng thuật toán cho hợp tử tổng quát
Như ta biết, phép danh sách [X1/t1 X2/t2 Xn/tn], Xi biến khác nhau, ti hạng thức không chứa Xi (i=1, ,n) Kết áp dụng phép vào biểu thức E biểu thức E nhận từ E cách thay xuất biến Xi ti Hai biểu thức xem hợp tồn phép để chúng trở thành đồng gọi hợp tử chúng Chẳng hạn, xét hai biểu thức sau:
know(“An”, X)
know(Y, husband(Z))
Với phép = [Y/An, X/ husband(Z)], biểu thức trở thành know(“An”, husband(Z))
Tuy nhiên, hai biểu thức hợp nói chúng có vơ số hợp tử Chẳng hạn, hợp tử nêu, hai câu know(“An”, X) know(Y, husband(Z)) cịn có hợp tử sau:
[Y/An, X/ husband(“Hoa”), Z/ Hoa]
[Y/An, X/ husband(“Lan”), Z/ Lan]
Chúng ta gọi hợp thành hai phép phép cho với biểu thức E ta có E()=E() Nói cụ thể hơn, hợp thành phép = [X1/t1 X2/t2 Xn/tm] = [Y1/s1 Y2/s2 Yn/sn] phép = [X1/t1 X2/t2 Xn/tm, Y1/s1 Y2/s2 Yn/sn] ta cần loại bỏ cặp Yi/si mà Yi trùng với Xk
Ví dụ Xét hai phép thế:
= [X/a, V/g(Y,Z)]
= [X/b, Y/c, Z/f(X), V/h(a)]
(22)Quan sát ví dụ ta thấy phép áp đặt nhiều hạn chế cho biến hn Do ta nói phép tổng quát phép
Chẳng hạn, phép đưa [Y/An, X/ husband(Z)] tổng quát phép [Y/An, X/ husband(“Hoa”), Z/ “Hoa”]
Giả sử E F hai biểu thức đơn hợp Ta gọi hợp tử tổng quát E F hợp tử cho tổng quát hợp tử E F Nói cách khác, hợp tử tổng quát E F với hợp tử E F tồn phép cho = Chẳng hạn với E F câu know( An , X) know(Y, husband(Z)) thì hợp tử tổng quát là: = [Y/An, X/ husband(Z)]
Sau trình bày thuật tốn hợp nhất, thuật tốn có ba tham biến: hai biểu thức đơn E, F hợp tử tổng quát Thuật toán dừng cho hợp tử tổng quát E F hợp Nếu E F khơng hợp được, thuật tốn dừng cho thơng báo điều Ta giả sử E F chứa biến có tên khác nhau, không ta cần đặt tên lại biến
Trong thuật tốn ta cần tìm khác biệt hai biểu thức Sự khác biệt đựoc xác định sau: Đọc hai biểu thức đồng thời từ trái sang phải gặp hai ký hiệu khác biểu thức Trích hai biểu thức ký hiệu khác Cặp biểu thức tạo thành khác biệt hai biểu thức cho Ví dụ: Sự khác biệt hai câu like(X,f(a,g(Z)) like(X,Y) cặp (f(a,g(Z),Y), biệt hai câu know(X,f(a,U)) know(X,f(a,g(b))) cặp (U,g(b))
Thuật tốn hợp mơ tả thủ tục đệ quy sau: Procedure Unify(E, F, );
Begin
(23)2 If khơng có khác biệt then {thông báo thành công; stop}
3 If khác biệt cặp (X, t), X biến, t hạng thức khơng chứa X then
begin
3.1 E E[X/t]; F F[X/t];
{tức áp dụng phép [X/t] vào biểu thức E F} 3.2 [X/t];
{hợp thành phép ? phép [X/t] } 3.3 Unify(E, F, );
end else
{thơng báo thất bại; stop} End;
Thuật tốn hợp luôn dừng sau số bước hữu hạn bước lần bước thực số biến cịn lại hai biểu thức bớt mà số biến hai biểu thức hữu hạn Để biết hai biểu thức P Q có hợp hay khơng ta cần gọi thủ tục Unify(P,Q, ), phép rỗng
P(a, X, f(a,g(X,Y)))
P(U, h(a), f(U,V)) (1)
Sự khác biệt hai biểu thức (a,U) Thế U a ta nhận hai biểu thức sau:
P(a, X, f(a,g(X,Y)))
P(a, h(a), f(a,V)) (2) Và phép =[U/a]
(24)P(a, h(a), f(a,g(h(a),Y))) P(a, h(a), f(a,V)) (3) Và phép =[U/a, X/h(a)]
Sự khác biệt hai biểu thức (3) (g(h(a),Y), V) Thế V g(h(a),Y), hai biểu thức (3) trở thành đồng nhất:
P(a, h(a), f(a,g(h(a),Y))) (4)
Như hai câu (1) hợp vi hợp tử tổng quát là: =[U/a, X/h(a), V/g(h(a),Y)]
2 Một số thuật giải chứng minh.
Một vấn đề quan trọng logic mệnh đề chứng minh tính đắn phép suy diễn (a b) Đây tốn chứng minh
thường gặp toán học
Rõ ràng với hai phép suy luận logic mệnh đề (Modus Ponens, Modus Tollens) cộng với phép biến đổi hình thức, ta chứng minh phép suy diễn Tuy nhiên, thao tác biến đối hình thức khó cài đặt máy tính Thậm chí điều cịn khó khăn với người! Với cơng cụ máy tính, bạn cho ta dễ dàng chứng minh toán phương pháp "thô bạo" lập bảng chân trị Tuy lý thuyết, phương pháp lập bảng chân trị cho kết cuối độ phức tạp phương pháp lớn, O(2n) với n số biến mệnh đề
Sau nghiên cứu hai phương pháp chứng minh mệnh đề (ở mục 2.1 v 2.2) với độ phức tạp có O(n )
(25)Cơ sở lý luận Cho giả thiết GT1, GT2, ,GTn Để chứng minh tập kết luận
KL1, KL2, ,KLm, ta chứng minh GT1, GT2, ,GTn KL1, KL2, ,KLm: True Thuật giải bao gồm bước sau:
B1: Phát biểu lại giả thiết kết luận vấn đề theo dạng chuẩn sau :
GT1, GT2, , GTn KL1, KL2, , KLm
Trong GTi KLi biểu thứclogic dạng chuẩn (chỉ chứa phép toán : , , )
B2: Nếu GTi có phép tách thành hai dịng
Nếu Kli có phép tách thành hai dịng
Ví dụ: p ( p q) q tách thành dịng:
p p q
p q q
Hoặc có p q q r tách thành dịng:
P q q
và p q r
B3: Một dòng chứng minh nếu:
1) Tồn chung mệnh đề hai phía
Ví dụ :
p qq r: True
2)Tồn mệnh đề phủ định lẫn nhau (p p)
Ví dụ: p p q: True B4 :
a) Nếu dịng khơng cịn phép nối hai vế
(26)b) Một vấn đề chứng minh tất dòng dẫn xuất từ dạng chuẩn ban đầu chứng minh
Ví dụ
1) Cần chứng minh từ a b c b c d a b, suy d (a b c) (b c d) a b d
a (b c d) a b d: T (b c) (b c d) a b d b (b c d) a b d: T
c (b c d) a b d c b a b d: T
c (c d) a b d c c a b d: T
c d a b d: T Cây suy diễn giải thuật Vương Hạo
2) Xét câu sau:
“Nếu trời mưa Lan mang theo dù”
“Nếu Lan mang theo dù Lan khơng bị ướt” “Nếu trời khơng mưa Lan khơng bị ướt”
a) Xây dựng câu biểu thức logic mệnh đề
b) Hãy chứng minh “Lan không bị ướt” phương pháp Vương Hạo
L
ời giải
a) r: “Trời mưa”
(27)Lúc đó, ta có biểu thức logic sau: r u
u w r w
Ta phải chứng minh (r u) (u w) (r w) w: True
2.2 Thuật giải Robinson
Thuật giải Robinson đề xuất hoạt động dựa phương pháp chứng minh phản chứng
Phương pháp chứng minh phản chứng:
Bài toán Chứng minh phép suy luận (a b) (với a giả thiết, b
kết luận)
Phản chứng: giả sử b sai suy b
(28)B1 : Phát biểu lại giả thiết kết luận vấn đề dạng chuẩn sau: GT1, GT2, ,GTn KL1, KL2, , KLm
Trong : GTi KLj biểu thức logic dạng chuẩn (chỉ chứa phép toán : , , )
B2 : Giả sử KL1, KL2, KLm đúng, lúc ta có biểu thức
logic sau:
{ GT1, GT2, , GTn , KL1, KL2, , KLm } B3 : Sau đưa dạng chuẩn hội (tích tổng) Ví dụ:
pq t p (q t) (p q) (p t)
B4 : Xây dựng mệnh đề cách áp dụng đồng đúng: (p q) (p r) q r
Nghĩa là: (p q) (p r): True có thêm biểu thức r t: True
và đưa vào tập giả thiết
Lặp lại trình sinh mệnh đề có chân trị đối (có mâu thuẫn) tốn lúc kết luận chứng minh, không tạo thêm mệnh đề gây mâu thuẫn lúc kết luận khơng chứng minh
Ví dụ
1) Xét toán:
Sau đưa dạng chuẩn hội, để đơn giản, ta viết biểu thức (chỉ chứa phép ) dịng Ta có:
1 a b c
2 b c d
(29)4 b
Giả sử d đúng, ta có thêm biểu thúc sau:
5 d
6 b c (Res 1A, 3) a c (Res 1B, 4) c d (Res 2A, 4) b c (Res 2C, 5)
10 c (Res 3, 7A)
11 c (Res 4, 9A)
Mâu thuẫn 10 11 Chứng minh xong
2.3 Chứng minh luật phân giải logic vị từ
Trong phần logic mệnh đề, ta đưa luật suy diễn quan trọng như: luật Modus Ponens, luật Modus Tolens, luật bắc cầu, , luật phân giải Chúng ta luật phân giải luật đầy đủ cho bác bỏ Điều có nghĩa phương pháp chứng minh bác bỏ, sử dụng luật phân giải ta chứng minh cơng thức có hệ logic tập công thức cho trước hay không Kết quan trọng mở rộng sang logic vị từ
Giả sử ta có sở tri thức (CSTT) gồm câu logic vị từ Chúng ta ln xem CSTT Chẳng hạn minh hoạ giới thực vấn đề mà quan tâm CSTT gồm câu mô tả hiểu biết giới thực
(30)Ví dụ: Giả sử CSTT gồm câu tuyển sau:
P(W) Q(W) (1)
P(X) R(X) (2)
Q(Y) S(Y)` (3) R(z) S(z) (4)
Sau đưa chứng minh câu S(a) từ CSTT luật phân giải Áp dụng luật phân giải cho câu (2) (4) với phép [X/a, Z/a], ta suy câu sau:
P(a) S(a) (5)
Áp dụng luật phân giải cho câu (1) (3) với phép [w/a, y/a] ta nhận câu:
P(a) S(a) (6)
Áp dụng luật phân giải cho câu (5) (6), ta suy câu S(a) S(a) Câu tương đương với câu S(a)
Chứng minh cách áp dụng luật suy diễn để dẫn tới điều cần phải chứng minh (như chứng minh trên) gọi chứng minh diễn dịch (deduction proof) Nhưng cần biết luật phân giải luật đầy dủ cho diễn dịch, tức từ tập tiên đề, sử dụng luật phân giải sinh tất câu hệ logic tiên đề cho
Tuy nhiên định lý phân giải (trong mục logic mệnh đề) logic vị từ cấp thoã hay khơng thỗ Nếu tập câu khơng thax qua số bước áp dụng luật phân giải sinh câu rỗng (tức dẫn tới mâu thuẫn)
(31)Ví dụ
Từ CSTT gồm câu (1) đến (4) ví dụ trên, ta chứng minh câu S(a) phưng pháp bác bỏ sau Thêm vào CSTT câu:
S(a) (7)
(lấy phủ định câu cần chứng minh), áp dụng luật phân gii cho câu (3) (7) với phép [y/a], ta suy câu:
Q(a) (8)
Từ câu (1) (8) với phép [w/a], ta nhận câu:
P(a) (9)
Từ câu (4) (7) với phép [z/a], ta suy câu:
R(a) (10)
Từ câu (2) (10) với phép [x/a], ta nhận câu:
P(a) (11)
Áp dụng luật phân gii cho câu (9) (11) ta nhận câu rỗng (mâu thuẫn: P(a) P(a))
Thủ tục tổng quát sử dụng luật phân gii để chứng minh cơng thức H có hệ qu logic tập công thức G=[G1, G2, ,Gn]
Procedure Proof_by_Resolution;
Input: tập G=[G1, G2, ,Gn] công thức {các tiên đề}, công thức cần chứng minh H
Begin
1 Biến đổi công thức Gi (i=1, ,n) vµ H dạng chuẩn hội;
2 Từ dạng chuẩn hội nhận bước 1, thành lập tập câu tuyển C;
3 Repeat
(32)Tính phân gii thức Res(A,B); 3.3 If Res(A,B) câu then
Thêm Res(A,B) vào tập C;
Until nhận câu rỗng khơng có câu sinh ra; If câu rỗng sinh then
Thông báo H Else
Thông báo H sai; End;
3 Ví dụ tập.
Để trình bày gọn, quy ước - Phép (hội hay tích)
Ví dụ a b ký hiệu a b ab - Phép (tuyển hay tổng)
Ví dụ a b ký hiệu a b a+b - Phép phủ định
Ví dụ phủ định a ký hiệu a - Phép kéo theo (suy ra)
Ví dụ a kéo theo b ký hiệu a b
Ví dụ Cho khẳng định với ý nghĩa sau:
a một người có nhóm máu A
b người có nhóm máu B
c người có nhóm máu AB
o người có nhóm máu O
(33)a. Nếu xét nghiệm T dương tính người có nhóm máu A AB
b. Nếu xét nghiệm S dương tính người có nhóm máu B AB
c. Nếu người có nhóm máu B xét nghiệm S dương tính
d. Một người có nhóm máu A, B, AB O Lời giải
a t a+c b s b+c c b s
d a + b+ c + o
Ví dụ 2. Hãy biểu diễn tri thức sau logic mệnh đề a Nếu n số nguyên chẵn n số nguyên tố n=2
b Số n phương n tận 1, 4, 5, Lời giải
a Gọi a : “là số nguyên chẵn”, b : “là số nguyên tố”, c : “số nguyên 2”
Lúc đó, tri thức biểu diễn sau: ab c b Gọi a : “là số phương”,
b : “số có chữ số tận 1” c : “số có chữ số tận 4” d : “số có chữ số tận 5” e : “số có chữ số tận 5” f : “số có chữ số tận 9”
Lúc đó, tri thức biểu diễn sau: a b+c+d+e+f Ví dụ Cho biểu thức logic mệnh đề sau
(34)2 a (f p) p+q d a
5 ad g
Hãy dùng phương pháp Robinson Vương Hạo để chứng minh bác bỏ g1
Lời giải
- Chuyển dạng chuẩn a f a + f
a (f p) a +(fp) a + (f + p) a + f + p p+q d (p+q)+d (pq)+d (p + d)(q + d) ad g (ad)+g a+d+g
- Dùng phương pháp phân giải Robinson Giả sử g1, ta có biểu thức sau
1 a + f
2 a + f + p
3 p + d
4 q + d
5 a
6 a+d+g
7 g
8 a+dres(63,7) d res(5, 81) 10 a +f +d res(23,31)
11 a + d res(12,102)
(35)Ta thấy 9) kết hợp 12) cho câu rỗng (tức có mâu thuẫn) Vì g1
- Dùng phương pháp Vương Hạo Ta cần chứng minh:
(a)(a + f )(a + f + p)(p + d)(q + d)(a+d+g)g: true(I)
(1) (2) (3) (4) (5)
Để chứng minh (I) tách (1), biểu thức (I) trở thành:
I.1) (a)(a)(a + f + p)(p + d)(q + d)(a+d+g) g : true I.2) af (a + f + p)(p + d)(q + d)(a+d+g)g
Chứng minh I.2) tách 2), I.2) trở thành
I.2.1) af (a)(p + d)(q + d)(a+d+g) g: true I.2.2) af (f)(p + d)(q + d)(a+d+g) g: true I.2.3) afp(p + d)(q + d)(a+d+g) g
Chứng minh I.2.3) tách 3), I.2.3) trở thành I.2.3.1) afp(p)(q + d)(a+d+g) g: true I.2.3.2) afpd(q + d)(a+d+g) g
Chứng minh I.2.3.2) tách 5), I.2.3.2) trở thành I.2.3.2.1) afpd(q + d)(a) g : true
I.2.3.2.2) afpd(q + d)(d) g : true I.2.3.2.3) afpd(q + d)g g : true (I) chứng minh, g1
Bài tập1 Biểu diễn tri thức sau dạng logic mệnh đề
A Trong tam giác vuông, tổng bình phương chiều dài hai cạnh góc vng bình phương chiều dài cạnh huyền
(36)C Nếu x số lẻ bình phương x tận x tận
d Trong tam giác vuông, chiều dài đườn trung tuyến xuất phát từ góc vuông chiều dài cạnh huyền
Bài tập Cho biểu thức logic mệnh đề sau n+c+d p
2 qp c qc f +h n+p+h nq
Hãy dùng phương pháp Robinson Vương Hạo để chứng minh bác bỏ f 1
Bài tập Cho biểu thức logic mệnh đề sau
1 abc c
2 abc p as h abcp s abd
Hãy dùng phương pháp Robinson Vương Hạo để chứng minh bác bỏ sh 1 Bài tập Ta có sở tri thức hệ chuyên gia bệnh cảm cúm sau:
1) “Nếu bệnh nhân rát họng viêm nhiễm viêm họng chữa họng“
2) “Nếu thân nhiệt >370 thì sốt”
3) “ Nếu ốm ngày sốt viêm nhiễm”
(37)a) Hãy biểu diễn tri thức dạng logic mệnh đề
b) Có bệnh nhân khai : “Thân nhiệt > 370 “ “ốm ngày” Dùng phương pháp chứng minh Robinson Vương Hạo để kết luận bệnh nhân bị "viêm nhiễm"
Bài tập Ta có sở tri thức mơ tả mối quan hệ thành phần một tam giác sau:
- Nếu biết cạnh tam giác ta biết nủa chu vi tam giác - Nếu biết cạnh chu vi tam giác ta biết cạnh
cịn lại tam giác
- Nếu biết diện tích cạnh tam giác ta biết chiều cao tương ứng với cạnh
- Nếu biết cạnh góc kẹp cạnh tam giác ta biết cạnh cịn lại tam giác
- Nếu biết cạnh góc kẹp cạnh tam giác ta biết diện tích tam giác
- Nếu biết ba cạnh chu vi tam giác ta biết diện tích tam giác
- Nếu biết diện tích đường cao tam giác ta biết cạnh tương ứng với đường cao tam giác
Giả sử biết cạnh và góc kẹp giữ hai cạnh Bằng phương pháp Robinson, chứng minh ta suy đường cao tương ứng với cạnh lại
Hướng dẫn
Ký hiệu a: cạnh a tam giác k: đường cao tương ứng với cạnh a b: cạnh b tam giác l: đường cao tương ứng với cạnh b c: cạnh c tam giác m: đường cao tương ứng với cạnh c A: góc tương ứng với cạnh a S: diện tích tam giác
(38)C: góc tương ứng với cạnh c
- Các tri thức biểu diễn dạng logic mệnh đề sau:
10) abc p 11) bpc a 12) apc b 13) abp c 14) Sa k 15) Sb l 16) Sc m 17) abC c 18) acB b
19) bcA a 20) abC S 21) acB S 22) bcA S 23) abcp S 24) Sk a 25) Sl b 26) Sm c
Sau dùng phương pháp Robinson (GT={a, b}, KL={m}) Bài tập 6. Biểu diễn tri thức sau dạng logic vị từ a Bất kỳ người có cha mẹ
b Mọi số nguyên tố lớn số lẻ c Chuồn chuồn bay thấp mưa
Lời giải
a Ký hiệu NGUOI(X): nghĩa X người CHAME(X, Y): X cha mẹ Y X ( NGUOI(X) Y: CHAME (Y, X))
b Ký hiệu P(X): X số nguyên tố lớn 2 Q(X): X số lẽ
X ( P(X) Q(X))
c Ký hiệu BAY(X,Y): vật X bay với độ cao Y TROIMUA: trời mưa
(39)Bài tập 7.
Giả sử biết thông tin sau đây: 1) Ơng Ba ni chó
2) Hoặc ông Ba ông Am giết mèo Bibi 3) Mọi người ni chó u quý động vật
4) Ai yêu quý động vật khơng giết động vật 5) Chó mèo động vật
Ai giết Bibi? Lời giải
- Biểu thông tin dạng logic vị từ cấp sau
Để biểu diễn tri thức logic vị từ cấp một, cần sử dụng D, Ba, An, Bibi, vị từ Dog(x) (x chó), Cat(y) (y mèo), Rear(u,v) (u nuôi v), AnimalLover(u) (u người yêu quý động vật), Kill(u,v) (u giết v), Animal(x) (x động vật)
Sử dụng vị từ trên, chuyển thành câu logic vị từ cấp sau:
1) Dog(“D”) Rear(“Ba”, “D”)
2) Cat(“Bibi”) (Kill(“Ba”, “Bibi”) + Kill(“Am”, “Bibi”)) 3) X (Y(Dog(Y) Rear(X,Y)) AnimalLover(X)))
4) U (AnimalLover(U) (V AnimalLover(V) Kill(U,V))) 5) Z (Dog(Z) Animal(Z)) W (Cat(W) Animal(W))
- Chuyển dạng chuẩn dùng phương pháp phân giải Robinson 1) Dog(“D”)
2) Rear(“Ba”, “D”) 3) Cat(“Bibi”)
(40)7) Dog(Z) + Animal(Z) 8) Cat(W) + Animal(W) Giả sử Kill(T, “Bibi”) đúng 9) Kill(T, “Bibi”)
Từ câu (4) câu (9) với phép [t/Am], ta nhận câu: 10) Kill(“Ba”, “Bibi”)
Từ câu (6) câu (10) với phép [u/Ba, v/Bibi], ta nhận câu: 11) AnimalLover(“Ba”) + Animal(“Bibi”)
Từ câu (3) câu (8) với phép [w/Bibi], ta nhận câu: 12) Animal(“Bibi”)
Từ câu (11) câu (12), ta nhận câu: 13) AnimalLover(“Ba”)
Từ câu (1) câu (5), với phép [y/D] ta nhận câu: 14) Rear(X, “D”) + AnimalLover(X)
Từ câu (2) câu (14), với phép [x/Ba] ta nhận câu: 15) AnimalLover(“Ba”)
Từ câu (13) câu (15) ta suy câu rỗng (có mâu thuẫn) Như ông Am giết mèo Bibi
Bài tập Giả sử biết thông tin sau đây: a Mọi người đếu chết
b Mọi phụ nữ chết c Thần thánh không chết
d Tất cả người bệnh phải điều trị e Beatrice phụ nữ
(41)k Socrate bị bệnh