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.
[*] 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:
bai_giang_luan_ly_toan_hoc_chuong_2_luan_ly_menh_de_phan_3_n.pdf

