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.

pdf82 trang | Chuyên mục: Logic Mờ và Ứng Dụng | Chia sẻ: yen2110 | Lượt xem: 184 | Lượt tải: 0download
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 lcp@cl.cam.ac.uk 
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 lcp@cl.cam.ac.uk 
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 lcp@cl.cam.ac.uk 
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 lcp@cl.cam.ac.uk 
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:

  • pdfbai_giang_luan_ly_toan_hoc_chuong_2_luan_ly_menh_de_phan_3_n.pdf