MỘTSỐTHUẬTGIẢILIÊNQUANĐẾNLOGICMỆNHĐỀMột trong những vấn đề khá quan trọng của logicmệnhđề là chứng minh tính đúng đắn của phép suy diễn (a → b). Đây cũng chính là bài toán chứng minh thường gặp trong toán học. Rõ ràng rằng với hai phép suy luận cơ bản của logicmệnhđề (Modus Ponens, Modus Tollens) cộng với các phép biến đổi hình thức, ta cũng có thể chứng minh được phép suy diễn. Tuy nhiên, thao tác biến đối hình thức là rất khó cài đặt được trên máy tính. Thậm chí điều này còn khó khăn với cả con người! Với công cụ máy tính, bạn có thể cho rằng ta sẽ dễ dàng chứng minh được mọi bài toán bằng một phương pháp "thô bạo" là lập bảng chân trị . Tuy về lý thuyết, phương pháp lập bảng chân trị luôn cho được kết quả cuối cùng nhưng độ phức tạp của phương pháp này là quá lớn, O(2 n ) với n là số biến mệnh đề. Sau đây chúng ta sẽ nghiên cứu hai phương pháp chứng minh mệnhđề với độ phức tạp chỉ có O(n). VII.1. Thuậtgiải Vương Hạo B1 : Phát biểu lại giả thiết và kết luận của vấn đề theo dạng chuẩn sau : GT 1 , GT 2 , ., GTn → KL 1 , KL 2 , ., KLm Trong đó các GTi và KLi là các mệnhđề được xây dựng từ các biến mệnhđề và 3 phép nối cơ bản : ∧ , ∨ , ¬ B2 : Chuyển vế các GTi và KLi có dạng phủ định. Ví dụ : p ∨ q, ¬ (r ∧ s), ¬ g, p ∨ r → s, ¬ p ⇒ p ∨ q, p ∨ r, p → (r ∧ s), g, s B3 : Nếu GTi có phép ∧ thì thay thế phép ∧ bằng dấu "," Nếu KLi có phép ∨ thì thay thế phép ∨ bằng dấu "," Ví dụ : p ∧ q, r ∧ (¬ p ∨ s) → ¬ q, ¬ s ⇒ p, q, r, ¬ p ∨ s → ¬ q, ¬ s B4 : Nếu GTi có phép ∨ thì tách thành hai dòng con. Nếu ở KLi có phép ∧ thì tách thành hai dòng con. Ví dụ : p, ¬ p ∨ q → q p, ¬ p → q p, q → q B5 : Một dòng được chứng minh nếu tồn tại chung mộtmệnhđề ở ở cả hai phía. Ví dụ : p, q → q được chứng minh p, ¬ p → q ⇒ p→ p, q B6 : a) Nếu một dòng không còn phép nối ∧ hoặc ∨ ở cả hai vế và ở 2 vế không có chung một biến mệnhđề thì dòng đó không được chứng minh. b) Một vấn đề được chứng minh nếu tất cả dòng dẫn xuất từ dạng chuẩn ban đầu đều được chứng minh. VII.2 Thuậtgiải Robinson Thuậtgiải này hoạt động dựa trên phương pháp chứng minh phản chứng. Phương pháp chứng minh phản chứng Chứng minh phép suy luận (a → b) là đúng (với a là giả thiết, b là kết luận). Phản chứng : giả sử b sai suy ra ¬ b là đúng. Bài toán được chứng minh nếu a đúng và ¬ b đúng sinh ra một mâu thuẫn. B1 : Phát biểu lại giả thiết và kết luận của vấn đề dưới dạng chuẩn như sau : GT 1 , GT 2 , .,GTn → KL 1 , KL 2 , , KLm Trong đó : GTi và KLj được xây dựng từ các biến mệnhđề và các phép toán : ∧ , ∨ , ¬ B2 : Nếu GTi có phép ∧ thì thay bằng dấu "," Nếu KLi có phép ∨ thì thay bằng dấu "," B3 : Biến đổi dòng chuẩn ở B1 về thành danh sách mệnhđề như sau : { GT 1 , GT 2 , ., GTn , ¬ KL 1 , ¬ KL 2 , ., ¬ KLm } B4 : Nếu trong danh sách mệnhđề ở bước 2 có 2 mệnhđề đối ngẫu nhau thì bài toán được chứng minh. Ngược lại thì chuyển sang B4. (a và ¬ a gọi là hai mệnhđề đối ngẫu nhau) B5 : Xây dựng mộtmệnhđề mới bằng cách tuyển một cặp mệnhđề trong danh sách mệnhđề ở bước 2. Nếu mệnhđề mới có các biến mệnhđề đối ngẫu nhau thì các biến đó được loại bỏ. Ví dụ : &#p ∨ ¬ q ∨ ¬ r ∨ s ∨ q Hai mệnhđề ¬ q, q là đối ngẫu nên sẽ được loại bỏ ⇒ p ∨ ¬ r ∨ s B6 : Thay thế hai mệnhđề vừa tuyển trong danh sách mệnhđề bằng mệnhđề mới. Ví dụ : { p ∨ ¬ q , ¬ r ∨ s ∨ q , w ∨ r, s ∨ q } ⇒ { p ∨ ¬ r ∨ s , w ∨ r, s ∨ q } B7 : Nếu không xây dựng được thêm mộtmệnhđề mới nào và trong danh sách mệnhđề không có 2 mệnhđề nào đối ngẫu nhau thì vấn đề không được chứng minh. Ví dụ : Chứng minh rằng ¬ p ∨ q, ¬ q ∨ r, ¬ r ∨ s, ¬ u ∨ ¬ s → ¬ p, ¬ u B3: { ¬ p ∨ q, ¬ q ∨ r, ¬ r ∨ s, ¬ u ∨ ¬ s, p, u } B4 : Có tất cả 6 mệnhđề nhưng chưa có mệnhđề nào đối ngẫu nhau. B5 : ⇒ tuyển một cặp mệnhđề (chọn hai mệnhđề có biến đối ngẫu). Chọn hai mệnhđề đầu : ¬ p ∨ q ∨ ¬ q ∨ r ⇒ ¬ p ∨ r Danh sách mệnhđề thành : {¬ p ∨ r , ¬ r ∨ s, ¬ u ∨ ¬ s, p, u } Vẫn chưa có mệnhđề đối ngẫu. Tuyển hai cặp mệnhđề đầu tiên ¬ p ∨ r ∨ ¬ r ∨ s ⇒ ¬ p ∨ s Danh sách mệnhđề thành {¬ p ∨ s, ¬ u ∨ ¬ s, p, u } Vẫn chưa có hai mệnhđề đối ngẫu Tuyển hai cặp mệnhđề đầu tiên ¬ p ∨ s ∨¬ u ∨ ¬ s ⇒ ¬ p ∨ ¬ u Danh sách mệnhđề thành : {¬ p ∨ ¬ u, p, u } Vẫn chưa có hai mệnhđề đối ngẫu Tuyển hai cặp mệnhđề : ¬ p ∨ ¬ u ∨ u ⇒ ¬ p Danh sách mệnhđề trở thành : {¬ p, p } Có hai mệnhđề đối ngẫu nên biểu thức ban đầu đã được chứng minh. . MỘT SỐ THUẬT GIẢI LIÊN QUAN ĐẾN LOGIC MỆNH ĐỀ Một trong những vấn đề khá quan trọng của logic mệnh đề là chứng minh tính đúng. hai mệnh đề đối ngẫu nhau) B5 : Xây dựng một mệnh đề mới bằng cách tuyển một cặp mệnh đề trong danh sách mệnh đề ở bước 2. Nếu mệnh đề mới có các biến mệnh