Bài giảng Luận lý toán học - Chương 2: Luận lý mệnh đề (Phần 3) - Nguyễn Thanh Sơn
Gán thực trị[*]
• Môi trường (Environments)
Gán thực trị là gán giá trị T (đúng) hoặc F (sai)
cho mỗi biến mệnh đề.
Những nhà khoa học máy tính gọi việc gán giá
trị cho các biến là một môi trường.
Tóm tắt nội dung Bài giảng Luận lý toán học - Chương 2: Luận lý mệnh đề (Phần 3) - Nguyễn Thanh Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
[*] Logic and Proof - Computer Science Tripos Part IB Michaelmas Term Lawrence C Paulson - Computer Laboratory University of Cambridge [email protected] ntsơn @Nguyễn Thanh Sơn Dạng NNF Thí dụ : F = (A → ¬B) → (B ∨ ¬A) F = ¬(A → ¬B) ∨ (B ∨ ¬A) (thay →) F = ¬(¬A ∨ ¬B) ∨ (B ∨ ¬A) (thay →) F = (A ∧ B) ∨ (B ∨ ¬A) (khai triển ¬) [*] Logic and Proof - Computer Science Tripos Part IB Michaelmas Term Lawrence C Paulson - Computer Laboratory University of Cambridge [email protected] ntsơn @Nguyễn Thanh Sơn Từ NNF đến CNF[*] • Đẩy ∨ vào trong, dùng F ∨ (G ∧ H) = (F ∨ G) ∧ (F ∨ H) • Đơn giản hóa : – Xóa mệnhđề chứa 2 lưỡngnguyên trái dấu. eg : (F ∨ G ∨ ¬F) ∧ (H ∨ K) = H ∨ K. – Xóa mệnh đề chứa mệnh đề khác. eg : (H ∨ K ∨ ¬F) ∧ (H ∨ K) = H ∨ K. – Thay (F ∨ G) ∧ (¬F ∨ G) bằng G. [*] Logic and Proof - Computer Science Tripos Part IB Michaelmas Term Lawrence C Paulson - Computer Laboratory University of Cambridge [email protected] ntsơn @Nguyễn Thanh Sơn Thuật toán CNF • Function CNF (F) Begin case F là nguyên từ : return F F = F1 ∧ F2 : return CNF (F1) ∧ CNF (F2) F = F1 ∨ F2 : return Phb (CNF (F1), CNF (F2)) endcase End [*] Logic and Proof - Computer Science Tripos Part IB Michaelmas Term Lawrence C Paulson - Computer Laboratory University of Cambridge [email protected] ntsơn @Nguyễn Thanh Sơn Thuật toán CNF • Function PhB (F1, F2) Begin case F1 = F11∧F12 : return PhB (F11,F2) ∧ Phb (F12,F2) F2 = F21∧F22 : return PhB (F1,F21) ∧ Phb (F1,F22) otherwise (không có toán tử ∧) : return F1 ∨ F2 endcase End ntsơn @Nguyễn Thanh Sơn Thuật toán NNF • Function NNF (F) Begin case F là nguyên từ : return F F = ¬¬F1 : return NNF (F1) F = F1 ∧ F2 : return NNF (F1) ∧ NNF (F2) F = F1 ∨ F2 : return NNF (F1) ∨ NNF (F2) F = ¬(F1 ∧ F2) : return NNF (¬F1) ∧ NNF (¬F2) F = ¬(F1 ∨ F2) : return NNF (¬F1) ∨ NNF (¬F2) endcase End ntsơn @Nguyễn Thanh Sơn Thuật toán NO_ARROW • Function NO_ARROW (F) Begin case F là nguyên từ : return F F = ¬F1 : return ¬(NO_ARROW (F1)) F = F1 ∧ F2 : return NO_ARROW (F1) ∧ NO_ARROW (F2) F = F1 ∨ F2 : return NO_ARROW (F1) ∨ NO_ARROW (F2) F = F1 →F2 :return ¬NO_ARROW(F1) ∨ NO_ARROW (F2) endcase End ntsơn @Nguyễn Thanh Sơn Dạng CNF Thí dụ : F = (¬A ∧ B → A ∧ (C → B) F1 = NO_ARROW(F) = ¬(¬A ∧ B) ∨ (A ∧ (¬C ∨ B)) F2 = NNF(F1) = (A ∨ ¬B) ∨ (A ∧ (¬C ∨ B)) F3 = CNF(F2) = (A ∨ ¬B ∨ A) ∧ (A ∨ ¬B ∨ ¬C ∨ B) F3 =CNF(NNF(NO_ARROW(F))) ntsơn @Nguyễn Thanh Sơn Dạng CNF Thí dụ : F = (¬A ∧ B → A ∧ (C → B) CNF(NNF(NO_ARROW(F))) = (A ∨ ¬B ∨ A) ∧ (A ∨ ¬B ∨ ¬C ∨ B) Tuy nhiên, (A ∨ ¬B) cũng là một dạng CNF của F. Kết quả của CNF(NNF(NO_ARROW(F))) không chắc là tối ưu cho việc giải bài toán SAT. ntsơn @Nguyễn Thanh Sơn Horn clause • Mệnh đề Horn là mệnh đề chỉ có 1 lưỡng nguyên dương (positive literal). Thí dụ : (A) (A ∨ ¬B) (¬C ∨ D ∨ ¬E) • Dạng Horn : giao của các mệnh đề Horn. Thí dụ : (A ∨ ¬B) ∧ (¬C ∨ D ∨ ¬E) ntsơn @Nguyễn Thanh Sơn Horn clause • Dạng Horn là giao các cấu trúc điều kiện (có hậu quả là một công thức nguyên và nguyên nhân là giao các công thức nguyên). Thí dụ : (A ∨ ¬B) ∧ (¬C ∨ D ∨ ¬E) thường được viết dưới dạng (B → A) ∧ ((C ∧ E) → D) ntsơn @Nguyễn Thanh Sơn Horn clause • Dạng Horn được định nghĩa bằng văn phạm Backus Naur form : F ::= ⊥ | Ť | A G ::= F | F ∧ G H ::= G → F K ::= H | H ∧ K Chú thích : ⊥ là công thức hằng sai Ť là công thức hằng đúng A là công thức nguyên ntsơn @Nguyễn Thanh Sơn Horn clause Thí dụ : (A → B) ∧ (A → ⊥) ∧ ((C ∧ E) → D) ((A ∧ B ∧ C ∧ E) → D) ∧ (Ť → A) Có thể loại trừ 2 dạng sau : ⊥ → A và (A ∧ B) → Ť vì luôn luôn đúng, ntsơn @Nguyễn Thanh Sơn Horn clause & SAT • Function HORN (F) Begin Đánh dấu (đd) tất cả Ť có trong F. while có ((A1 ∧ ... ∧ An) → A) của F sao cho các Ai bị đd và A chưa bị đd, khi đó đd mọi A của F endwhile if ⊥ bị đd then F hằng sai else F khả đúng End ntsơn @Nguyễn Thanh Sơn Horn clause & SAT • Thí dụ : HORN ((A → ⊥) ∧ (Ť → A)) Begin (A → ⊥) ∧ (Ť* → A) (Ť* → A) : (A* → ⊥) ∧ (Ť* → A*) (A* → ⊥) : (A* → ⊥*) ∧ (Ť* → A*) End ⊥ bị đánh dấu. Vậy công thức F hằng sai. ntsơn @Nguyễn Thanh Sơn Horn clause & SAT • Thí dụ : F = ((A → B) ∧ (Ť → A) ∧ ((A ∧ B ∧ C) → D)) HORN (F) Begin (A → B) ∧ (Ť* → A) ∧ ((A ∧ B ∧ C) → D) (A* → B) ∧ (Ť* → A*) ∧ ((A* ∧ B ∧ C) → D) (A* → B*) ∧ (Ť* → A*) ∧ ((A* ∧ B* ∧ C) → D) End vậy công thức F khả đúng. ntsơn @Nguyễn Thanh Sơn Horn clause & SAT • Thí dụ : HORN ((A → B) ∧ ((C ∧ E) → D) ∧ (Ť → A) ∧ ((A ∧ B ∧ C ∧ E) → D)) Begin (A → B) ∧ ((C ∧ E) → D) ∧ (Ť* → A) ∧ ((A ∧ B ∧ C ∧ E) → D) (A* → B*) ∧ ((C ∧ E) → D) ∧ (Ť* → A*) ∧ ((A* ∧ B* ∧ C ∧ E) → D) End vậy công thức khả đúng. ntsơn @Nguyễn Thanh Sơn Hệ quả luận lý • Nếu mọi mô hình của F cũng là mô hình của H thì H được gọi là hệ quả luận lý của F. Ký hiệu F ╞═ H. • F là KB, được gọi là tiền đề và H được gọi là kết luận. • Logical Consequence = Entailment = Hệ quả luận lý (HQLL). ntsơn @Nguyễn Thanh Sơn Hệ quả luận lý • Để chứng minh H là hệ quả luận lý của F : – Liệt kê tất cả diễn dịch. – Chọn các diễn dịch là mô hình của F. – Kiểm tra xem các mô hình này có còn là mô hình của H hay không. F H Tập các Diễn dịch Tập các Diễn dịch Tập con thỏa thỏa Hệ quả luận lý ╞═ ntsơn @Nguyễn Thanh Sơn Hệ quả luận lý Thí dụ : {A, B} ╞═ A ∨ B {A, B} ╞═ A ∧ B {A, B} ╞═ A → B {A, A ∨ B} ╞═ A → B {A ∨ B, A ∧ B} ╞═ A {A ∨ B, A ∧ B} ╞═ B {A ∨ B, A ∧ B} ╞═ A → B {B, A → B} ╞═ A ∨ B ntsơn @Nguyễn Thanh Sơn Hệ quả luận lý • Kiểm tra X → Y, X ╞═ Y. Không là mô hình của KB 1 0 0 1 1 1 1 1 1 ╞═ Y X X → Y Y X 0 1 1 0 0 1 0 0 Không là mô hình của KB Không là mô hình của KB ntsơn @Nguyễn Thanh Sơn Ký hiệu hằng đúng • Ký hiệu công thức H là hằng đúng : ╞═ H Ký hiệu ╞═ H có nghĩa là ∅ ╞═ H. Hệ thống { F1, , Fn }╞═ H ↔ { F1, , Fn } ∪ {CTHằngđúng}╞═ H ↔ F1, ∧ ∧ , Fn ∧ CTHằngđúng ╞═ H Do đó khi { F1, , Fn } = ∅ thì CTHằngđúng╞═ H. ntsơn @Nguyễn Thanh Sơn Công thức hằng đúng • Nếu F ╞═ H thì công thức (F → H) hằng đúng. • Một công thức hằng đúng : F ╞═ H ↔ ╞═ (F → H) F ╞═ H ↔ ╞═ ¬( F ∧ ¬H) ( F1, , Fn ╞═ H ) ↔ (F2, , Fn ╞═ F1 → H) ( F ╞═ H và H ╞═ K ) → (F ╞═ K) (truyền) ntsơn @Nguyễn Thanh Sơn Ký hiệu ╞═ • Một số tác giả ký hiệu M ╞═ F, trong đó F là một công thức và M là một mô hình của F. ntsơn Chương 2 Bài tập Chương 2 : Luận lý mệnh đề ntsơn @Nguyễn Thanh Sơn Lập bảng thực trị Cho các công thức sau : 1. (¬P ∨ Q) ∧ (¬(P ∧ ¬Q)) 2. (P → Q) → (¬Q → ¬P) 3. (P → Q) → (Q → P) 4. P ∨ (P → Q) 5. (P ∧ (Q → P)) → P 6. P ∨ (Q → ¬P) 7. (P ∨ ¬Q) ∧ (¬P ∨ Q) ∧ (¬(P → Q)) ntsơn @Nguyễn Thanh Sơn Tương quan giữa các toán tử So sánh các công thức sau : 1. ¬(P → (¬Q)) và (P ∧ Q) 2. (¬P → Q) và (P ∨ Q) Nhận xét gì về sự liên hệ của các toán tử ? ntsơn @Nguyễn Thanh Sơn Tương quan giữa các toán tử Viết ra các công thức sau chỉ dùng → và ¬ : 1. (P ∨ Q) ∧ (Q → P) 2. (¬P ∨ Q) ∧ (¬(P ∧ ¬Q)) 3. P ∨ (P → Q) 4. (P ∧ (Q → P)) → P 5. P ∨ (Q → ¬P) 6. (P ∨ ¬Q) ∧ (¬P ∨ Q) ∧ (¬(P → Q)) ntsơn @Nguyễn Thanh Sơn Dùng thủ tục số học Tính các công thức : 1. (¬P ∨ Q) ∧ (¬(P ∧ ¬Q)) 2. (P → Q) → (¬Q → ¬P) 3. (P → Q) → (Q → P) 4. P ∨ (P → Q) 5. (P ∧ (Q → P)) → P 6. P ∨ (Q → ¬P) 7. (P ∨ ¬Q) ∧ (¬P ∨ Q) ∧ (¬(P → Q)) ntsơn @Nguyễn Thanh Sơn Sự tương đương Chứng minh sự tương đương của các công thức : 1. (P → Q) → (P ∧ Q) = (¬P → Q) ∧ (Q → P) 2. P ∧ Q ∧ (¬P ∨ ¬Q) = ¬P ∧ ¬Q ∧ (P ∨ Q) 3. (P → Q) ∧ (P → R) = (P → (Q ∧ R)) 4. P ∧ (P → (P ∧ Q)) = ¬P ∨ ¬Q ∨ (P ∧ Q) ntsơn @Nguyễn Thanh Sơn Hằng đúng - Hằng sai Xác định tính hằng đúng, hằng sai của các công thức : 1. ¬(¬S) → S 2. ¬(S ∨ T) ∨ ¬T 3. (S→T)→ (¬T→ ¬S) 4. P ∨ (P → Q) 5. (P ∧ (Q → P)) → P 6. ¬P ∧ (¬(P → Q)) 7. ((A ∨ B) ∧ (¬A ∨ C)) → (B ∨ C). ntsơn @Nguyễn Thanh Sơn Mô hình Tìm một mô hình cho mỗi công thức : 1. ¬(¬S) → S 2. ¬(S ∨ T) ∨ ¬T 3. (S→T)→ (¬T→ ¬S) 4. P ∨ (P → Q) 5. (P ∧ (Q → P)) → P 6. ¬P ∧ (¬(P → Q)) 7. ((A ∨ B) ∧ (¬A ∨ C)) → (B ∨ C). ntsơn @Nguyễn Thanh Sơn Mô hình Diễn dịch nào : I1 = {S} I2 = {S, ¬T} I3 = {A, ¬B, C} I4 = {S, ¬T, A, ¬B, C, P, ¬Q} là mô hình của các công thức sau : 1. ¬(¬S) → S 2. ¬(S∨T) ∨ ¬T 3. P ∨ (P → Q) 4. (P → Q) → (¬Q → ¬P) 5. ((A ∨ B) ∧ (¬A ∨ C)) → (B ∨ C). ntsơn @Nguyễn Thanh Sơn Dạng chuẩn CNF Chuyển thành dạng CNF 1. ¬(P → Q) 2. ¬(P ∨ ¬Q) ∧ (P ∨ Q) 3. (¬P ∧ Q) → R 4. ¬(P ∧ Q) ∧ (P ∨ Q) 5. (P → Q) → R 6. P → ((Q ∧ R) → S) 7. P ∨ (¬P ∧ Q ∧ R) 8. ¬(P → Q) ∨ (P ∨ Q) 9. (¬P ∧ Q) ∨ (P ∧ ¬Q). ntsơn @Nguyễn Thanh Sơn Hằng đúng - Hằng sai Chứng minh các công thức sau đây là hằng đúng, hằng sai, hay khả đúng khả sai : 1. ¬(¬S) → S 2. ¬(S∨T) ∨¬T 3. (S→T)→(¬T→ ¬S) ntsơn @Nguyễn Thanh Sơn Mô hình Tìm một mô hình I cho công thức F. F = ((A∨B) ∧ ¬B) → A Mở rộng I để nó cũng là mô hình của G. G = ((A∧C) ∨ ¬C) → A. ntsơn @Nguyễn Thanh Sơn Hệ qủa luận lý Chứng minh ¬K là hệ quả luận lý của hệ thống {F1, F2, F3, F4} : F1 = J → P ∨ T, F2 = K ∨ Q → J, F3 = T → A, F4 = ¬P ∧ ¬A. ntsơn @Nguyễn Thanh Sơn Hệ qủa luận lý Công thức nào là hệ quả luận lý của hệ thống {A, B, A→ C } 1. A∨ B. 2. A ∧ B. 3. B → C. 4. (A ∧ B) ∨ C. ntsơn @Nguyễn Thanh Sơn Hằng đúng Công thức nào sau đây là hằng đúng : 1. (x → x) 2. ¬(x ↔ x) 3. (((P → Q) ∧ (¬P → Q)) → Q) 4. (¬A → (B → A)) 5. ((A ∨ B) → (¬B → A)) 6. ((¬P ∧ Q) ∧ (Q → P)) 7. (((X → Y) → X) → Y). ntsơn @Nguyễn Thanh Sơn Hết slide
File đính kèm:
bai_giang_luan_ly_toan_hoc_chuong_2_luan_ly_menh_de_phan_3_n.pdf

