Chng minh logic Thut ton Vng Ho Bc
Chứng minh logic
Thuật toán Vương Hạo § Bước 1: Phát biểu lại giả thuyết và kết luận của bài toán dưới dạng chuẩn sau: Trong đó các GTi và KLj được xây dựng từ các biến mệnh đề và các phép toán : § Bước 2: Chuyển vế các GTi và KLj có dạng phủ định. § Bước 3: Thay phép toán ở GTi và phép toán V ở KLj bằng dấu “, ”.
§ Bước 4: Nếu dòng hiện hành có một trong hai dạng sau: + Dạng 1: Thì thay bằng 2 dòng:
§ +Dạng 2: Thì thay bằng 2 dòng.
§ Bước 5: Một dòng được chứng minh nếu tồn tại chung một mệnh đề ở cả hai vế. § Bước 6 a: Một vấn đề được giải quyết trọn vẹn nếu mọi dòng dẫn xuất biểu diễn ở dạng chuẩn được chứng minh. § Bước 6 b: Nếu một dòng không còn dấu liên kết và cả hai vế không có chung mệnh đề nào thì dòng đó không được chứng minh.
Chứng minh định lý nhờ logic hình thức: Giải thuật Wong. H (Vương Hạo) § Bài toán: Cho các giả thiết dưới dạng các biểu thức mệnh đề (vị từ) GT 1, GT 2, . . . , GTm. Hãy rút ra một trong các kết luận KL 1, KL 2, . . . , KLn § Giải thuật Wong. H (Vương Hạo) Vào: GT 1, GT 2, . . . , GTm; KL 1, KL 2, . . . , KLn. Ra: Thông báo “thành công” nếu GT 1 GT 2 . . . GTm KL 1 KL 2 . . . KLn Phương pháp: { for i=1 to m do {trans(GTi); VT GTi VT} for i=1 to n do {trans(KLi); VP KLi VP} P {(VT, VP)}; while P do {(VT, VP) get(P); if VT VP = then {chuyen(VT, VP); if VT VP = then if not tach(VT, VP) then exit(“không thành công”) else P {(VT, VP)}; }}write(“thành công”)} 6
Chứng minh định lý nhờ logic hình thức: Giải thuật Wong. H (Vương Hạo) § trans(BT): Đưa biểu thức BT về biểu thức tương đương mà chỉ chứa các phép toán , , dưới 1 trong 2 dạng chuẩn sau: hoặc , lij = pij hoặc lij = pij với pij là các mệnh đề đơn VD: (a b) (c d) có thể đưa về thành: (a b) (c d) § chuyen(VT, VP): chuyển vế các GTi và các KLj ở dạng phủ định. Thay dấu bên trong GTi và dấu trong KLj bằng dấu phẩy. VD: (a b) (c d) được biến đổi thành: c, d a, b § tach(VT, VP): tách VT, VP thành hai danh sách con nếu có dấu trong một GTi hoặc dấu trong một KLj nào đó. Nếu tách được thì thủ tục tach(VT, VP) nhận giá trị True. ngược lại nhận giá trị False VD: p q, p q được tách thành p, p q và q, p q § Kết quả: Thuật toán Wong. H dừng sau một số bước hữu hạn và cho ra thông báo “thành công” nếu và chỉ nếu từ GT 1, GT 2, . . . , GTmcó thể suy ra một trong các kết luận KL 1, KL 2, . . . , KLn. 7
Chứng minh định lý nhờ logic hình thức: Giải thuật Wong. H (Vương Hạo) § VD: CMR từ a b c, b c d, a, b suy ra d Dạng chuẩn: VT = a b c, b c d, a, b; VP = d 8
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § Thuật giải này hoạt động dựa trên phương pháp chứng minh phản chứng. Có nghĩa là, để chứng minh rằng từ GT 1, GT 2, . . . , GTm suy ra một trong các kết luận KL 1, KL 2, . . . , KLn ta lấy phủ định của các kết luận hợp với giả thiết suy ra mâu thuẫn. 9
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § Thủ tục Resolution 1 (Dùng cho logic mệnh đề) Vào: GT 1, . . . , GTm; KL 1, . . . , KLn Ra: Thông báo “thành công” nếu GT 1. . . GTm KL 1. . . KLn. Phương pháp: { For i=1 to m do { Trans(GTi); P GTi; } For i=1 to n do {Trans(KLi); P KLi; } /* P=MĐ 1, . . . , MĐk , k=m+n*/ If mt(P) then exit(“Thành công”); P 1= ; While P P 1 and mt(P) do {P 1=P; hopgiai(P); } If mt(P) then exit (“Thành công”) else exit (“Không thành công”)} Procedure mt(P); {mt=false; for each p P do for each q P and q p do if p= q or q= p then return (true)} Procedure hopgiai(P); {for each p P do for each q P and q p do if p= a b and q=a c then P P {b c}} 10
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § VD: CMR từ a b c, b c d, a, b suy ra d Đưa các GTi và KLj về dạng chuẩn và xây dựng P ta có: P ={ a b c, b c d, a, b, d}. Để đơn giản, ta viết các xâu trong P dưới dạng: 1. a b c 2. b c d 3. a 4. b 5. d Quá trình hợp giải như sau: 6. b c Res(1 A, 3) 7. a c Res(1 B, 4) 8. c d Res(2 A, 4) 9. b c Res(2 C, 5) 10. c Res(3, 7 A) 11. c Res(4, 9 A). Mâu thuẫn giữa 10, 11, thông báo “thành công”. 11
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § Kết quả: Thuật giải Resolution 1 sẽ dừng và đưa ra thông báo “thành công” khi và chỉ khi GT 1. . . GTm KL 1. . . KLn. § Thuật giải Resolution 1 có thể mở rộng để giải quyết các bài toán chứng minh định lý tự động sử dụng logic vị từ. Mấu chốt của phương pháp là hợp giải hai vị từ: A= P Q 1 Q 2 . . . Qk và B= P R 1 R 2 . . . Rt thành vị từ C = Q 1 Q 2 . . . Qk R 1 R 2 . . . Rt. § Do các vị từ Pi, Qi và Rj phụ thuộc và các biến nên để tạo ra các cặp đối ngẫu thực sự P và P ta phải thực hiện các phép gán. Cách chọn phép gán: Để đưa vị từ P(x 1, x 2, . . . , xn) về dạng P(t 1, t 2, . . . , tn) ta chọn phép gán q= { t 1/x 1, t 2/x 2, . . . , tn/xn} để thay thế mỗi biến xi bởi ti, trong đó ti có thể là biến, hằng hoặc biểu thức. 12
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § Thủ tục Resolution 2 (Dùng cho logic vị từ) Bước 1: Đưa các GTi và KLj về dạng chuẩn: x 1 x 2. . . xk sao cho mọi biến có mặt trong Pij đều thuộc vào tập {x 1, x 2 , . . . , xk}. Muốn vậy ta thực hiện các thao tác sau: 1. Khử bỏ các dấu kéo theo và tương đương nhờ A B A B 2. Đưa dấu phủ định vào trong cùng chừng nào có thể, nhờ các phép biến đổi: · (A B) A B · A A x A · x A 3. Thay tên biến để cho mỗi lượng từ chỉ có một tên biến riêng. 4. Khử bỏ các lượng từ tồn tại: x P(x) chuyển thành P(a), x y P(x, y) chuyển thành P(x, g(x)). Hàm g(x) được gọi là hàm Scholem. 5. Chuyển mọi lượng từ về đầu biểu thức, phần biểu thức gọi là ma trận. 6. Đưa ma trận về dạng chuẩn hội nhờ áp dụng A (B C) (A B) (A C) 7. Loại bỏ các lượng từ 8. Thay thế các liên kết bởi các dấu phẩy, mỗi dòng được gọi là một câu. 13
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § VD: Xét x {P(x) { y {P(y) P(f(x, y))} y {Q(x, y) P(y)}}}. Áp dụng các bước để đưa về dạng chuẩn như sau: 1. x { P(x) { y { P(y) P(f(x, y))} y { Q(x, y) P(y)}}} 2. x { P(x) { y { P(y) P(f(x, y))} y {Q(x, y) P(y)}}} 3. x { P(x) { y { P(y) P(f(x, y))} {Q(x, ) P( )}}} 4. x { P(x) { y { P(y) P(f(x, y))} {Q(x, g(x)) P(g(x))}}} 5. x y { P(x) {{ P(y) P(f(x, y))} {Q(x, g(x)) P(g(x))}}} 6. x y{{ P(x) P(y) P(f(x, y))} { P(x) Q(x, g(x))} { P(x) P(g(x))}} 7. { P(x) P(y) P(f(x, y))} { P(x) Q(x, g(x))} { P(x) P(g(x))} 8. Tách câu và viết thành các dòng P(x) P(y) P(f(x, y)) P(x) Q(x, g(x)) P(x) P(g(x)) 14
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson Bước 2. Nếu tìm được một cặp câu P 1, P 2 và một phép gán q sao cho P 1 q= P 2 q thì thông báo “Thành công” và thuật toán dừng. Ngược lại sang bước 3. Bước 3: Tìm cặp câu P = P 0 P 1 . . . Pk và Q = Q 0 Q 1 Q 2 . . . Qt và phép gán q sao cho P 0 q = Q 0 q. Thực hiện hợp giải câu P với câu Q được câu R= P 1 . . . Pk Q 1 Q 2 . . . Qt và bổ sung câu R vào danh sách các câu. Bước 4: Nếu không thể xây dựng thêm được các hợp giải và không có cặp câu đối ngẫu thì bài toán sai, ngược lại bài toán được giải quyết xong và thông báo “Thành công”. Kết quả: Nếu từ GT 1 GT 2 . . . GTm KL 1 KL 2 . . . KLn thì thủ tục Resolution 2 dừng và đưa ra thông báo “thành công”. 15
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § VD: Biết rằng: Ngón tay là bộ phận của bàn tay, bàn tay là bộ phận của cánh tay, cánh tay là bộ phận của cơ thể. CMR: Ngón tay là bộ phận của cơ thể. Đặt vị từ P(x, y): “ x là bộ phận của y ”. Ta có: P(nt, bt), P(bt, ct), P(ct, cothe). P(x, y) có tính bắc cầu: P(x, y) P(y, z) P(x, z) CMR P(nt, cothe) Mỗi câu được cho trên một dòng, trong mỗi dòng các dấu được thay bởi dấu phấy: 1. P(x, z), P(x, y), P(y, z) 2. P(nt, bt) 3. P(bt, ct) 4. P(ct, cothe) 5. P(nt, cothe) 6. P(nt, z), P(bt, z) Res(1 B, 2) q 1 = {nt /x, bt /y} 7. P(nt, ct) Res(3, 6 B) q 2 = {ct /z} 8. P(nt, z), P(ct, z) Res(1 B, 7) q 3 = {nt/x, ct/y} 9. P(nt, cothe) Res(4, 8 B) q 4 = {cothe/z} 10. Mâu thuẫn Res(5, 9) 16
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson § VD: Nếu xem một ai đó đi lừa dối người khác là kẻ bịp bợm và bất kỳ ai đồng tình với kẻ bịp bợm cũng là bịp bợm, hơn nữa trong tập thể có một người nhút nhát đồng tình với kẻ lừa dối thì chắc chắn là có một kẻ bịp bợm tính tình nhút nhát. Ta sử dụng các vị từ sau: BB(x): x là kẻ bịp bợm. LD(x): x là kẻ lừa dối. NN(x): x là kẻ nhút nhát. ĐT(x, y): x đồng tình với y. 17
Chứng minh định lý nhờ logic hình thức: Thủ tục của Robinson Khi đó ta có: 1. LD(x), BB(x) 2. ĐT(x, y), BB(y), BB(x) 3. NN(a) 4. LD(b) 5. ĐT(a, b) 6. BB(x), NN(x) 7. BB(b) Res(1 A, 4), q 1 ={b/x} 8. BB(b), BB(a) Res(2 A, 5), q 2 ={a/x, b/y} 9. BB(a) Res(3, 6 B), q 3 ={a/x} 10. NN(b) Res(6 A, 7), q 4 ={b/x} 11. BB(b) Res(8 B, 9), 12. Mâu thuẫn Res(7, 11). 18
Áp dụng phép tính vị từ trong giải quyết vấn đề § Phần này sẽ nghiên cứu việc xác định các phép gán trị cho các biến để từ GT 1. . . GTm suy ra KL 1. . . KLn. Có hai cách giải quyết: § Lưu lại vết các phép gán giá trị nhận được cho đến khi đưa đến mâu thuẫn. Ta đưa vào khái niệm hợp các phép gán. Giả sử , là hai phép gán trị, hợp của chúng được kí hiệu bởi o sao cho đối với mọi biểu thức P ta có: P o =(P ). § VD: Giả sử Mai và Dương rất thân nhau. Đi đâu Mai và Dương cũng có nhau. Hơn nữa ta biết rằng hiện nay Mai đang ở thư viện. Hỏi Dương đang ở đâu? Ta đưa vào vị từ: P(x, y): x đang ở vị trí y. Khi đó, ta có: x P(Mai, x) P(Dương, x) P(Mai, Thư viện). Cần tìm giá trị của P(Dương, x). 19
Áp dụng phép tính vị từ trong giải quyết vấn đề 20
Áp dụng phép tính vị từ trong giải quyết vấn đề § Cải biên đồ thị lời giải Bên cạnh biểu thức là phủ định của kết luận KLj cần chứng minh ta thêm vào phủ định của chính nó (tức là KLj) và giữ nguyên các phép hợp giải giống như ở trong đồ thị hợp giải. 21
Một số phương pháp giải quyết vấn đề khác § Phương pháp tạo kiểm tra § Phương pháp leo đồi § Phương pháp thoả mãn ràng buộc 22
NGÔN NGỮ TTNT PROLOG 23
- Slides: 23