Tải bản đầy đủ (.doc) (35 trang)

Đồ án trí tuệ nhân tạo bài tập Chương III các phương pháp biểu diễn và xử lý tri thức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (262.42 KB, 35 trang )

KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

ĐỒ ÁN TRÍ TUỆ NHÂN TẠO
BÀI TẬP CHƯƠNG III:

CÁC PHƯƠNG PHÁP BIỂU
DIỄN VÀ XỬ LÝ TRI THỨC

Nhóm 3
GVHD: Th.S: Huỳnh Minh Trí

GVHD:Th.S: Huỳnh Minh Trí

Page 1


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

A. THUẬT GIẢI VƯƠNG HẠO
a)

Ý tưởng
Áp dụng chiến lược “chia để trị” nhằm tách bài toán xuất phát thành các
bài toán con dạng ”và” đơn giản hơn. Bài toán ban đầu sẽ được chứng
minh khi và chỉ khi mọi bài toán con sơ cấp được chứng minh.

b)

Các bước chứng minh bài toán bằng thuật giải Vương Hạo.
Bước 1: Ta đưa VT và VP cùa bài toán cần chứng minh về dạng chuẩn
bằng cách:


Thay các phép toán ⇔ (tương đương) bằng phép toán →(kéo
theo) tương ứng.
Thay các phép toán →(kéo theo) bằng các phép toán ┐(phủ định),
(phép tuyển) tương ứng.
-Từ các phép toán ┐(phủ định),

(phép tuyển),

(phép hội) ta có dạng

chuẩn GT ≡ VT và KL ≡ VP của bài toán cần chứng minh dạng:
GT1, GT2, GT3,………, GTn → KL1, KL2, KL3,……., KLm
Bước 2: Chuyển vế này sang vế kia các GTi, KLj có dạng phủ định.
Chỉ những mệnh đề phủ định đứng độc lập thì mới chuyển vế
GT1, GT2, ┐GT3,….., GTn-1, GTn → KL1, ┐KL2, KL3,…., KLm-1,
KLm.
Chuyển vế ta có:
GT1, GT2, KL2,….., GTn-1, GTn → KL1, GT3, KL3,…., KLm-1, KLm

Bước 3: Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
GT1, GT2, a ∧ b, GT3,….,, GTn-1, GTn → KL1, c ∨ d, KL2,…,
KLm-1, KLm.
GVHD:Th.S: Huỳnh Minh Trí

Page 2


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Bài toán chuyển vể dạng:


GT1, GT2, a , b, GT3,….,, GTn-1, GTn → KL1, c , d , KL2,…, KLm1, KLm.

Bước 4: Nếu dòng hiện hành có một trong hai dạng sau:
Dạng 1:
GT1, GT2,…,a  b,…, GTn-1, GTn → KL1, KL2,…., KLm-1, KLm
Thì thay bằng hai dòng:
GT1, GT2,…, a,…, GTn-1, GTn → KL1, KL2,…., KLm-1, KLm
GT1, GT2,…, b,…, GTn-1, GTn → KL1, KL2,…., KLm-1, KLm
Dạng 2:
GT1, GT2,…, GTn-1, GTn → KL1, KL2,…,a ∧ b,…, KLm-1, KLm
Thì thay bằng hai dòng:
GT1, GT2,…., GTn-1, GTn → KL1, KL2,…,a,…, KLm-1, KLm
GT1, GT2,…., GTn-1, GTn → KL1, KL2,…,b,…, KLm-1, KLm
- Chúng ta có thể tách cùng lúc nhiều nhóm mệnh đề với nhau, nhưng
cách hay nhất là nên chọn một nhóm mệnh đề mà thấy khi tách dòng có
mệnh đề trong nhóm mệnh đề đó ở gt giống mệnh đề ở kl. Như vậy ta sẽ
giảm được số dòng tách tiết kiệm thời gian.

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ế.

Ví dụ: a ∧ b, c → c (được chứng minh)
Bước 6:
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.
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.
Ví dụ: a ∧ b, c → d.
Chú ý: Từ bước 2 - 4 không cần làm theo thứ tự.

Thuật toán Vương Hạo sẽ dừng lại sau hữu hạn bước và đưa ra
thông báo “thành công” nếu từ GT tìm ra được KL. Nếu bài toán có quá

GVHD:Th.S: Huỳnh Minh Trí

Page 3


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

nhiều phép toán liến kết ∧ trong Gti và  trong KLj thì bài toán có thể
sinh ra từ M đến 2M dòng.
-

Áp dụng luật De Morgan để bỏ dấu ┐(phủ định) của nguyên
một nhóm mệnh để:

Ví dụ: ┐(p

q ) ≡ ┐p

┐q.

┐(p

q ) ≡ ┐p

┐q.

-


Có thể sử dụng mệnh đề này ở bất kỳ bước nào (từ 1-4).

Áp dung luật phân phối (nếu chưa gặp dạng chuẩn cần tìm) phép tuyển đối
với phép hội (hay phép hội đối với phép tuyển).

I.

Ví dụ: p

(q

u) ≡ (p q)

(p u).

p

(q

u) ≡ (p

(p u).

q)

BÀI TẬP THUẬT GIẢI VƯƠNG HẠO.

Bài 1: Cho {(A∧ B) →C, (B∧C) →D, (A∧B)}. Hỏi D ?
Bước 1) Ta đưa VT và VP cùa bài toán cần chứng minh về dạng chuẩn bằng cách:

Thay các phép toán ⇔(tương đương) bằng phép toán →(kéo
theo) tương ứng. (Không có phép toán ⇔ nên ta bỏ qua).
Thay các phép toán →(kéo theo) bằng các phép toán ┐(phủ định),
(phép tuyển) tương ứng.
(A∧ B) →C ≡ ┐(A ∧ B)  C.
(B∧C) →D ≡ ┐(B ∧ C)  D.

Ta có dạng chuẩn cùa bài toán là:
{┐(A ∧ B)  C, ┐(B ∧ C)  D, (A ∧ B)}→ D.
Bước 2) Chuyển vế này sang vế kia các GTi, KLj có dạng phủ định.(Do không có
mệnh đề phủ định đứng độc lập nên chuyển sang bước 3).
GVHD:Th.S: Huỳnh Minh Trí

Page 4


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Bước 3) Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
Ở đây ta áp dụng luật De Morgan để bỏ dấu ┐(phủ định) của nguyên một nhóm
mệnh để:
{(┐A  ┐B  C, ┐B  ┐C  D, A, B) → D}.
Bước 4) Ta áp dụng dạng 1 để tách dòng: đó là tách nhóm  (tuyển) chính ở GTi.
Tùy theo bài toán đơn giản hay phức tạp mà bạn có thể đồng thời thành 2 hay
nhiều hơn 2 dòng con.
Ta có:
{┐A, ┐B┐CD, A, B }→ D (1)
{┐B, ┐B┐CD, A, B} → D (2)
{C, ┐B┐CD, A, B }→ D (3)
Bước 5) Chứng minh các bài toán con. Chúng ta cũng áp dụng các bước như đối

với bài toán ban đầu.
CM (1).
B2) Chuyển vế này sang vế kia mệnh đề phủ định.
{┐B┐CD, A, B }→ D, A (CM)
CM (2).
B2) Chuyển vế này sang vế kia mệnh đề phủ định.
{┐B┐CD, A, B} → D, B (CM)_
CM (3).
B4) Tách dòng dạng 1:
{C, ┐B, A, B} → D (3.1)
{C, ┐C, A, B }→ D (3.2)
{C, D, A, B }→ D

(3.3)(CM)

Tiếp tục chứng minh các bài toán con của (3).
GVHD:Th.S: Huỳnh Minh Trí

Page 5


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

CM (3.1)
B2) Chuyển vế
{C, A, B} → D, B

(CM)

CM(3.2)

B2) chuyển vế
{C, A, B }→ D, C (CM)
Bước 6) Kết luận : tất cả các bài toán con (1), (2), (3) đều được chứng minh.Vậy
bài toán ban đầu được chứng minh là đúng.
Bài 2. Cho {A→BD, D→E ∧ F, E ∧ A→B}. Hỏi A→D
Bước 1) Đưa GT, KL của bài toán cần chứng minh về dạng chuẩn:
Thay dấu →(kéo theo) bằng các phép toán ┐(phủ định),  (hay).
A→BD ≡ ┐ABD
D→E ∧ F ≡ ┐D(E∧ F)
E ∧ A→B ≡ ┐(E ∧ A) B
A→D ≡ ┐AD
Dạng chuẩn:
{(┐ABD, ┐D(E∧ F), ┐(E ∧ A) B)→ ┐AD}
Bước 2) Chuyển vế (không có mềnh đề phủ định đứng độc lập ) chuyển sang Bước
3.
Bước 3) Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
{(┐ABD, ┐D(E∧ F), ┐E  ┐ A B)→ ┐A, D}
Bước 2) Chuyển vế:
{(┐ABD, ┐D(E∧ F), ┐E  ┐ A B, A)→ D}
Bước 4)
Tách dòng theo dạng 1:
GVHD:Th.S: Huỳnh Minh Trí

Page 6


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

{(┐A, ┐D(E∧ F), ┐E  ┐ A B, A)→ D} (1)
{(B, ┐D(E∧ F), ┐E  ┐ A B, A)→ D} (2)

{(D, ┐D(E∧ F), ┐E  ┐ A B, A)→ D} (3) (CM)
Bước 5) Chứng minh các bài toán con 1, 2. Chúng ta cũng chứng minh qua các
bước giống như bài toán ban đầu.
CM (1).
B2) Chuyển vế
{( ┐D(E∧ F), ┐E  ┐ A B, A)→ D, A } (CM)
CM (2)
B4) Tách dòng dạng 1
{(B, ┐D, ┐E  ┐ A B, A)→ D} (2.1)
{(B, ( E∧ F), ┐E  ┐ A B, A)→ D} (2.2)
B5) Tiếp tục chứng minh các bài toán con 2.1, 2.2.
Cm (2.1)
B2) Chuyển vế
{(B, ┐E  ┐ A B, A)→ D, D} (2.1)
B4) Tách dòng theo dạng 1
{(B, ┐E, A)→ D} (2.1.1) (Không cm được)
{(B, ┐ A, A)→ D} (2.1.2) (CM)
{(B, B, A)→ D} (2.1.3) (Không cm được)
B5) Tới đây các bài toán con của bài toán con 2.1 không chứng minh được
nên không phải chứng minh tiếp các bài toán con của bài toán con 2.2 nữa, chúng ta đi
đến kết luận:
Bước 6) kết luận theo 6b: Bài toán ban đầu xuất phát không đúng.
Bài 3. Cho {(a∧b)→c, (b∧c)→d, ┐d}. Cm a→b?
GVHD:Th.S: Huỳnh Minh Trí

Page 7


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN


Bước 1) Đưa bài toán cần chứng minh về dạng chuẩn:
Ta có: {(┐(a∧b) c, ┐(b∧c) d, ┐d) → ┐ab}
Bước 2) Chuyển vế
{(┐(a∧b) c, ┐(b∧c) d) → ┐ab, d}
Bước 3) Thay dấu
{(┐a┐b c, ┐b┐c d) → ┐a, b, d}
Bước 2) Chuyển vế
{(┐a┐b c, ┐b┐c d, a) → b, d}
Bước 4) Tách dòng theo dạng 1
{(┐a, ┐b┐c d, a) → b, d} (1)
{(┐b , ┐b┐c d, a) → b, d} (2)
{(c, ┐b┐c d, a) → b, d} (3)
Bước 5) Chứng minh các bài toán con 1, 2 ,3.
CM (1).
B2) Chuyển vế
{( ┐b┐c d, a) → b, d, a}

(CM)

Cm (2).
B2) Chuyển vế
{( ┐b┐c d, a) → b, d, b}
B4) Tách dòng theo dạng 1
{( ┐b, a) → b, d}

(2.1)(Không chứng minh được)

{( ┐c, a) → b, d }

(2.2)(Không chứng minh được)


{( d, a) → b, d } (2.3)(CM)

GVHD:Th.S: Huỳnh Minh Trí

Page 8


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

B5)Do bài toán con (2.1) không chứng minh được nên bài toán con 2 cũng
không chứng minh được. Vậy nên không cần chứng minh tiếp bài toán con 3 nữa mà đi
tới b6.
Bước 6) Kết luận dạng 6b : do các bài toán con sai nên bài toán xuất phát ban đầu
cũng sai.
Bài 4. Cho {(p∧q)→r, (p∧r) →s, p, q}. Hỏi r ?...
Bước 1) Đưa bài toán cần chứng minh về dạng chuẩn:
{(┐(p∧q) r, ┐(p∧r) s, p, q) →r}
Bước 2) Chuyển vế. Không có mệnh đề phủ định độc lập chuyển qua b3.
Bước 3) Thay dấu đồng thời sử dụng mệnh để De Morgan bỏ đi phủ định của
nhóm mệnh đề (nếu không làm ở bước này cũng không sao, không bắt buộc).
{(┐p ┐q r, ┐p ┐r s, p, q) →r}
Bước 4) Tách dòng theo dạng 1
{(┐p, ┐p ┐r s, p, q) →r} (1)
{(┐q, ┐p ┐r s, p, q) →r} (2)
{(r, ┐p ┐r s, p, q) →r} (3) (CM)
Bước 5) Chứng minh các bài toán con 1, 2, 3.
Cm (1)
B2) Chuyển vế:


{( ┐p ┐r s, p, q) →r, p} (CM)

Cm (2)
B2) Chuyển vế: {( ┐p ┐r s, p, q) →r, q} (CM)
Bước 6) Kết luận 6a: Tất cả các bài toán con 1, 2,3 đều chứng minh được. Vậy bài
toán ban đầu được chứng minh là đúng.
Bài 5. Cho {(p ∧ q )→r, (q ∧ r)→s, ┐s}. Hỏi p → ┐q?
Bước 1) Đưa bài toán cần chứng minh về dạng chuẩn:
{(┐ (p ∧ q ) r, ┐ (q ∧ r) s, ┐s) → ┐p  ┐q }
GVHD:Th.S: Huỳnh Minh Trí

Page 9


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Bước 2) Chuyển vế:
{(┐ p ┐q r, ┐q ┐r s) → ┐p  ┐q, s}
Bước 3) Thay dấu:
{(┐ p ┐q r, ┐q ┐r s) → ┐p , ┐q, s}
Bước 2) Chuyển vế:
{(┐ p ┐q r, ┐q ┐r s, p, q) → s}
Bước 4) Tách dòng theo dạng 1
{(┐p, ┐q ┐r s, p, q) → s} (1)
{(┐q , ┐q ┐r s, p, q) → s} (2)
{(r, ┐q ┐r s, p, q) → s} (3)
Bước 5) Chứng minh các bài toán con 1, 2, 3:
Cm (1):
B2) Chuyển vế : {(┐q ┐r s, p, q) → s, p} (CM)
Cm (2):

B2) Chuyển vế: {(┐q ┐r s, p, q) → s, q} (CM)
Cm (3):
B4) Tách dòng theo dạng 1:
{(r, ┐q, p, q) → s} (3.1)
{(r, ┐r , p, q) → s} (3.2)
{(r, s, p, q) → s} (3.3) (CM)
B5) Chứng minh các bài toán con 3.1, 3.2:
Cm (3.1):
B2) Chuyển vế: {(r, p, q) → s, q} (CM)
Cm (3.2):
GVHD:Th.S: Huỳnh Minh Trí

Page 10


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

B2) Chuyển vế:

{(r, p, q) → s, r } (CM)

Bước 6) Kết luận theo 6a: Tất cả các bài toán con 1, 2, 3 đều chứng minh được.
Vậy nên bài toán ban đầu được chứng minh.
Bài 6. CM [((a ∨ b →c ∧ d) ∧ (c→e) ∧ a)]→[(d ∧ c) ∨ b]?
Bước 1) Dạng chuẩn:
[((┐(a ∨ b) ∨ (c ∧ d)) ∧ (┐c ∨ e) ∧a)] → [(d ∧ c) ∨ b]
Dùng luật phân phối cho mệnh đề [(d ∧ c) ∨ b] ≡ [(b ∨ d) ∧ (b ∨
c)]
Bước 2) Không có chuyển sang bước 3.
Bước 3) Thay dấu ∧ ở GT và dấu ∨ ở KL =’,’.

[(┐a ∧ ┐b) ∨ (c ∧ d), ┐c ∨ e, a] → [(b ∨ d) ∧ (b ∨ c)]
Bước 4) Tách dòng theo dạng 1
[(┐a ∧ ┐b), ┐c ∨ e,a] → [(b ∨ d) ∧ (b ∨ c)] (1)
[(c ∧ d), ┐c ∨ e, a] → [(b ∨ d) ∧ (b ∨ c)] (2)
Bước 5) Chứng minh các bài toán con
CM (1).
B3) Thay dấu: [┐a, ┐b, ┐c ∨ e, a] → [(b ∨ d) ∧ (b ∨ c)]
B2) Chuyển vế : [┐c ∨ e, a] → [((b ∨ d) ∧ (b ∨ c)), a, b] (CM)
CM (2)
B3) Thay dấu: [c, d, ┐c ∨ e, a]→ [(b ∨ d) ∧ (b ∨ c)]
B4) Tách dòng dạng 1
[c, d, ┐c, a] → [(b ∨ d) ∧ (b ∨ c)] (2.1)
[c, d, e, a] → [(b ∨ d) ∧ (b ∨ c)] (2.2)
B5) Chứng minh các bài toán con
Cm (2.1)
GVHD:Th.S: Huỳnh Minh Trí

Page 11


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

B2) Chuyển vế mệnh dề phủ định từ vế này qua vế kia.
[c, d, a] → [((b ∨ d) ∧ (b ∨ c)), c] (CM)
Cm (2.2)
B4) Tách thành dòng con theo dạng 2
[c, d, e, a] → [(b ∨ d)] (2.2.1)
[c, d, e, a] → [(b ∨ c)]

(2.2.2)


B5) Cm các bài toán con
Cm(2.2.1)
B3) Thay dấu
[c, d, e, a] → [b, d] (CM)
Cm (2.2.2)
B3) Thay dấu
[c, d, e, a] → [b, c] (CM)
Bước 6) Kết luận 6a: Các bài toán con đều được chứng minh. Vậy bài toán ban
đầu đã được chứng minh.
Bài 7. CM { A → B, A → C ∨ E , B ∧ C → D, E → F, F ∨ D → G, A} hỏi G?
Bước 1) Dạng chuẩn:
{ ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, ┐F ∧ ┐D ∨ G, A →
G}
Bước 2) Không có, chuyển sang bước 3.
Bước 3) Thay dấu ∧ ở GT và dấu ∨ ở KL =’,’.
{ ┐A ∨ B, ┐A ∨ C ∨ E , ┐B ∨ ┐C ∨ D, ┐E ∨ F, ┐F , ┐D ∨ G, A →
G}
Bước 2) Chuyển vế.
┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, ┐D ∨ G, A → G, F
Bước 4) Tách dòng theo dạng 1
GVHD:Th.S: Huỳnh Minh Trí

Page 12


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, G, A → G, F (1)
┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, ┐D, A → G , F (2)

Bước 5) Chứng minh các bài toán con
(1)┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, G, A → G, F (1)
(CM)
(2) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, ┐D, A → G, F
Bước 2 : Chuyển vế
┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E ∨ F, A → G, D, F
Bước 4 : Tách dòng
(2.1) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, F, A → G, D, F
(2.2) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E , A → G, D, F
Bước 5 : chứng minh các bài toán con
(2.1) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, F, A → G, D, F
(CM)
(2.2) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, ┐E , A → G, D, F
Bước 2 : Chuyển vế
(2.2) ┐A ∨ B, ┐A ∨ C ∨ E, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 4: Tách dòng
(2.2.1) ┐A ∨ B, E, ┐B ∨ ┐C ∨ D, A → G, D, F, E
(2.2.2) ┐A ∨ B, ┐A, ┐B ∨ ┐C ∨ D, A → G, D, F, E
(2.2.3) ┐A ∨ B, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 5: Chứng minh các bài toán con
(2.2.1) ┐A ∨ B, E, ┐B ∨ ┐C ∨ D, A → G, D, F, E (CM)
(2.2.2) ┐A ∨ B, ┐A, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 2: chuyển vế
GVHD:Th.S: Huỳnh Minh Trí

Page 13


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN


(2.2.2) ┐A ∨ B, ┐B ∨ ┐C ∨ D, A → G, D, F, E, A (CM)
(2.2.3) ┐A ∨ B, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 4: Tách dòng
(2.2.3.1) ┐A, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
(2.2.3.2) B, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 5: Chứng minh các bài toán con
(2.2.3.1) ┐A, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 2: chuyển vế
(2.2.3.1) C, ┐B ∨ ┐C ∨ D, A → G, D, F, E , A (CM)
(2.2.3.2) B, C, ┐B ∨ ┐C ∨ D, A → G, D, F, E
Bước 4: tách dòng
(2.2.3.2.1) B, C, ┐B, A → G, D, F, E
(2.2.3.2.2) B, C,┐C, A → G, D, F, E
(2.2.3.2.3) B, C, D, A → G, D, F, E
Bước 5: chứng minh các bài toán con
(2.2.3.2.1) B, C, ┐B, A → G, D, F, E
Bước 2: chuyển vế
(2.2.3.2.1) B, C, A → G, D, F, E, B (CM)
(2.2.3.2.2) B, C,┐C, A → G, D, F, E
Bước 2: chuyển vế
(2.2.3.2.2) B, C, A → G, D, F, E, C (CM)
(2.2.3.2.3) B, C, D, A → G, D, F, E (CM)
Bước 6) Kết luận 6a: Các bài toán con đều được chứng minh. Vậy bài toán ban
đầu đã được chứng minh
GVHD:Th.S: Huỳnh Minh Trí

Page 14


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN


Bài 8. Đặt C(x): “x là cá heo”; T(x): “x thông minh”; D(x): “x biết đọc”. Biểu diễn các
câu sau:
a. Cá heo thì thông minh.
b. Cá heo thì không biết đọc.
c. Những ai biết đọc thì thông minh.
d. Willy là cá heo
Hãy : 1. Dùng logic vị từ để mô tả các mệnh đề trên.
2. Từ các câu trên, chứng minh có 1 người thông minh nhưng không biết đọc.
Phát biểu các mệnh đề trên dưới dạng logic bậc nhất:
a. ∀x, C(x) → T(x)
b. ∀x, C(x) → ┐D(x)
c. ∀x, D(x)→ T(x)
d. ∃a, C(f(a))
KL :, T(x) ∧ ┐D(x)
+ Phát biểu các câu về dạng mệnh đề (không có lượng từ) :
a. ∀x, C(x) → T(x) ≡ ┐C(x) ∨ T(x)
b. ∀x, C(x) → ┐D(x) ≡ ┐C(x) ∨ ┐D(x) ≡ ┐( C(x) ∧ D(x) )
c. ∀x, D(x)→ T(x) ≡ ┐D(x) ∨ T(x)
d. ∃a, C(f(a)) ≡ C(f(A))
KL : ∃x, T(x) ∧ ┐D(x) ≡ T(A) ∧ ┐D(A)
Bước 1) Dạng chuẩn:
{ ┐C(x) ∨ T(x) , ┐( C(x) ∧ D(x) ), ┐D(x) ∨ T(x) , C(f(A))→ T(A) ∧ ┐D(A) }
Bước 2) Chuyển vế.
{ ┐C(x) ∨ T(x) , ┐D(x) ∨ T(x) , C(f(A))→ T(A) ∧ ┐D(A), C(x) ∧ D(x) }
Bước 3) Không có.
GVHD:Th.S: Huỳnh Minh Trí

Page 15



KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Bước 4) Tách dòng
Bước 5) Chứng minh các bài toán con

GVHD:Th.S: Huỳnh Minh Trí

Page 16


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

B. THUẬT GIẢI ROBINSON
a) Ý tưởng: Sử dụng:
Phương pháp chứng minh phản chứng:
[a→b đúng] ≡ [a ∧ ┐b sai hay mâu thuẫn]
Nguyên lý hợp giải:
┐a  b  c, a  d ≡ ┐a  b  c  a  d ≡ b  c 
d.
-

┐a ∧ b, a ∧ d ≡ ┐a ∧ b ∧ a ∧ d ≡ b ∧ d.
Ta thường gặp các trường hợp riêng của nguyên lý này:
a. Nguyên lý Modus Ponens: P đúng, P → Q đúng, suy ra
Q đúng.
b. Nguyên lý Modus Tollens: Q sai, P đúng → Q, suy ra
P sai.

- Để chứng minh từ các Gti suy ra một trong các KLj ta chỉ cần lấy

phủ định của KLj đưa về cùng với tác giả của GTi.
- Để suy ra được mâu thuẫn, Robinson đã đưa ra nguyên lý hợp giải ở
trên để bổ sung thêm ngày càng nhiều các biểu thức mệnh đề trung gian
mới cho đến khi nào trong danh sách mệnh đề có 2 mệnh để đơn đứng
độc lập là phủ định của nhau thì mâu thuẫn xảy ra.
- Nếu suy ra được mâu thuẫn từ tập các mệnh đề ở GTi và KLj thì quá
trình chứng minh kết thúc và kết luận bải toán được chứng minh.
b)

Các bước chứng minh bài toán bằng thuật giải Robinson.
Bước 1: Ta đưa VT và VP cùa bài toán cần chứng minh về dạng chuẩn
bằng cách:
Thay các phép toán ⇔ (tương đương) bằng phép toán →(kéo
theo) tương ứng.
Thay các phép toán →(kéo theo) bằng các phép toán ┐(phủ định),
(phép tuyển) tương ứng.
-Từ các phép toán ┐(phủ định),

(phép tuyển),

(phép hội) ta có dạng

chuẩn GT ≡ VT và KL ≡ VP của bài toán cần chứng minh dạng:
GVHD:Th.S: Huỳnh Minh Trí

Page 17


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN


GT1, GT2, GT3,………, GTn → KL1, KL2, KL3,……., KLm

Bước 2: Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
Chỉ những mệnh đề phủ định đứng độc lập thì mới chuyển vế
GT1, GT2, a ∧ b, GT3,….,, GTn-1, GTn → KL1, c ∨ d, KL2,…,
KLm-1, KLm.
Bài toán chuyển vể dạng:

GT1, GT2, a , b, GT3,….,, GTn-1, GTn → KL1, c , d , KL2,…, KLm1, KLm.

Bước 3: Biến đổi dòng trên thành danh sách các mệnh đề
{GT1, GT2, a, b, ,… , GTn , ┐KL1, ┐KL2, ┐c, ┐d … , ┐KLm}
Bước 4 : 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 B5.
(a và ┐ a gọi là hai mệnh đề đối ngẫu nhau).
Bước 5 : 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 đề đối ngẫu nhau thì các biến đối ngẫu đượ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.
Bước 6 : Thay thế hai mệnh đề vừa tuyển trong danh sách mệnh đề bằng
mệnh đề mới. Áp dụng heuristic cho thuật toán này ”áp dụng hợp
giải sau khi thu được mệnh đề mới {p Ú r Ú s} có thể bỏ 2 mệnh
đề cũ {p  ┐q } và { r  s  q}”. Nếu mệnh đề là mệnh đề
nguyên tử thì không rút gọn mà chuyển về cuối danh sách. Có thể
hợp giải nhiều thứ tự mệnh đề có biến đối ngẫu với nhau, nhưng
cách hay hợp giải mệnh đề nào ra được mâu thuẫn nhanh thì nên
chọn.
Ví dụ :

GVHD:Th.S: Huỳnh Minh Trí

Page 18


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

{ p  ┐ q , r  s  q , w  r, s  q }
≡ { p  r  s , w  r, s  q }.
{┐p  u, p, q  t, p, r s} ≡ {u, q  t, p, r s, p }.
(p là 1 mệnh đề nguyên tử).
Bước 7 : Nếu không xây dựng được thêm một mệ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.
Lưu ý: - từ bước 2 – 5 không theo thứ tự.
-

Thuật giải Robinson sẽ dừng sau một số hữu hạn bước và đưa ra
thông báo “thành công” nếu từ GT tìm ra được KL.

-

Để chứng minh bài toán xuất phát không đúng ta phải hợp giải hết tất
cả các khả năng cho đến khi không thể sinh ra thêm biểu thức mệnh
đề nào mới trong bài toán.

-

Cũng như thuật giải Vương Hạo, thuật toán Robinson có nhược điểm
là tùy theo thứ tự lấy các cặp mệnh đề hợp giải có thể xảy ra hiện

tượng tràn bộ nhớ(do bùng nổ tổ hợp) đối với các bài toán có kích
thước lớn.

-

Bài toán chứng minh được nhưng có thể kết luận không chứng minh
được nếu áp dụng Heuristic sai.
o Ví dụ: [(p q)→r),(p

r)→s), p q]→r

o B1) Đưa về dạng chuẩn ta có:
┐(p q) Úr), ┐ (p r) Ús), p q]→r
B2) Không có.

o
B3)

┐pÚ ┐q Úr, ┐pÚ ┐ r Ús, p q], ┐r

o

b4) Chưa có mệnh đề đối ngẫu nên chuyển sang B5.

o

b5) Hợp giải 2 mệnh đề đầu ta có:

GVHD:Th.S: Huỳnh Minh Trí


Page 19


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

{┐pÚ ┐q Ú s}.
Đưa vào danh sách mềnh đề ta có :
{┐pÚ ┐q Ú s, p q, ┐r }.
Tiếp tục hợp giải 2 mệnh đề đầu ta có: {s , ┐r}. Không có mâu thuẫn
không thể hợp giải được nữa. Bài toán sai chăng? Câu trả lời ở đây là
bài toán không hề sai nếu chúng ta hợp giải trước 2 mệnh đề 1, 3 ta có:
{┐pÚ ┐q Úr p q} ≡ r.
Đưa vào danh sách mệnh đề ta có: {r, ┐pÚ ┐ r Ús, ┐r}. Khi đó có mâu
thuẫn r, ┐r . Vậy bài toán được chứng minh.
-

-

I.

Áp dụng luật De Morgan để bỏ dấu ┐(phủ định) của nguyên một
nhóm mệnh để:
Ví dụ: ┐(p

q ) ≡ ┐p

┐q.

┐(p


q ) ≡ ┐p

┐q.

Áp dung luật phân phối (nếu chưa gặp dạng chuẩn cần tìm) phép
tuyển đối với phép hội (hay phép hội đối với phép tuyển).
Ví dụ: p

(q

u) ≡ (p q)

(p u).

p

(q

u) ≡ (p

(p u).

q)

BÀI TẬP THUẬT GIẢI ROBINSON
Bài 1: Cho {(A∧ B) →C, (B∧C) →D, (A∧B)}. Hỏi D ?
Bước 1) Ta đưa VT và VP cùa bài toán cần chứng minh về dạng chuẩn bằng

cách:
Thay các phép toán ⇔ (tương đương) bằng phép toán →(kéo

theo) tương ứng. (Không có phép toán ⇔nên ta bỏ qua).

GVHD:Th.S: Huỳnh Minh Trí

Page 20


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Thay các phép toán →(kéo theo) bằng các phép toán ┐(phủ định),
(phép tuyển) tương ứng.
(A∧ B) →C ≡ ┐(A ∧ B)  C.
(B∧C) →D ≡ ┐(B ∧ C)  D.

Ta có dạng chuẩn cùa bài toán là:
{(┐(A ∧ B)  C, ┐(B ∧ C)  D, (A ∧ B) )→ D}.

Bước 2) Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
{(┐A  ┐B  C, ┐B  ┐C  D, A, B )→ D}.
Bước 3) Bỏ phép toán →(kéo theo) và phủ định mệnh đề kết luận đưa sang
GT:
{┐A  ┐B  C, ┐B  ┐C  D, A, B , ┐D}.
Bước 4) Có tất cả 5 mệnh đề nhưng chưa có 1 cặp mệnh đề đối ngẫu. Nên
chúng ta chuyển qua B5.
Bước 5) Tuyển một cặp mệnh đề (chọn 2 mệnh đề có biến đối ngẫu). Có
thể chọn thứ tự cặp mệnh đề hợp giải tùy thích miễn là ở cặp mệnh đề được chọn đó có 2
mệnh đề đối ngẫu để hợp giải. Ở đây chúng ta chọn mệnh đề 1, 2 hợp giải:
{┐A  ┐B  C  ┐B  ┐C  D} ≡ {┐A  ┐B  ┐B  D } (bỏ
mệnh đề đối ngẫu C, ┐C)
Bước 6) Thay thế 2 mệnh cũ bằng mệnh đề mới. Ta có danh sách mệnh đề

mới như sau:
{┐A  ┐B  D, A, B , ┐D }
Chưa xuất hiện cặp mệnh đề mâu thuẫn.
Bước 5) Tiếp tục tuyển mệnh đề 1, 2 (hay hợp giải mệnh đề 1, 2):
{┐A  ┐B  D, A} ≡ {┐B  D}(Bỏ 2 mệnh đề
đối ngẫu A, ┐A. Có thể không bỏ mệnh đề A cũng được vì nó là mệnh đề nguyên
tử, có thể đưa vào cuối danh sách mệnh đề).
GVHD:Th.S: Huỳnh Minh Trí

Page 21


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

Bước 6) Thay thế 2 mệnh đề cũ bằng mệnh đề mới. Ta có danh sách mệnh
đề mới như sau:
{┐B  D , B , ┐D }
Vẫn chưa xuất hiện cặp mệnh đề mâu thuẫn. Chuyển sang B5
Bước 5) Hợp giải 2 mệnh đề đầu tiên ta có:
{┐B  D  B } ≡ {D}
Bước 6) Thay thế 2 mệnh đề cũ bằng mệnh đề mới, ta có:
Danh sách mệnh đề trở thành {D, ┐D }
Bước 7) Đã tìm được 2 mệnh đề đối ngẫu nên bài toán ban đầu đã được
chứng minh.
Bài 2. Cho {A→BD, D→E ∧ F, E ∧ A→B}. Hỏi A→D
Bước 1) Đưa GT, KL của bài toán cần chứng minh về dạng chuẩn:
Thay dấu →(kéo theo) bằng các phép toán ┐(phủ định),  (hay)
A→BD ≡ ┐ABD
D→E ∧ F ≡ ┐D(E∧ F)
E ∧ A→B ≡ ┐(E ∧ A) B

A→D ≡ ┐AD
Dạng chuẩn:
{(┐ABD, ┐D(E∧ F), ┐(E ∧ A) B)→ ┐AD}
Bước 2) Thay phép toán ∧ ở GTi và phép toán ∨ ở KLj bằng dấu “,”.
Áp dụng luật phân phối cho mệnh đề
{┐D(E∧ F) } ≡ {(┐D E) ∧ ( ┐D F)}
{(┐ABD, (┐D E) ∧ ( ┐D F), ┐E  ┐ A B)→ ┐A, D}
Bước 3) Biến đổi dòng trên thành danh sách các mệnh đề, bỏ phép toán kéo theo
đồng thời phủ định mệnh đề đưa về GT:
GVHD:Th.S: Huỳnh Minh Trí

Page 22


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

{┐ABD, (┐D E) , ( ┐D F), ┐E  ┐A B, A, ┐D}
Bước 4) Có tất cả 6 mệnh đề nhưng chưa có mệnh đề đối ngẫu nên ta chuyển
sang B5.
Bước 5) Tuyển cặp mệnh đề(cặp mệnh đề có 2 mệnh đề đối ngẫu nhau). Chọn
mệnh đề 1, 2 :
{┐A  B  D  ┐D E} ≡ {┐A  B  E} (Bỏ mệnh đề đối ngẫu D,
┐D)
Bước 6) Thế 2 mệnh đề cũ bằng mệnh để mới ta có danh sách mệnh đề:
{┐A  B  E, ┐D F, ┐E  ┐A B, A, ┐D }
Chưa có mệnh đề đối ngẫu chúng ta tiếp tục tuyển các cặp mệnh đề còn lại
Tuyển cặp mệnh đề 1, 3 :
{┐A  B  E  ┐E  ┐A B} ≡ {┐A  B  ┐A B} (Bỏ
mệnh đề đối ngẫu E, ┐E)
Danh sách mệnh để mới:

{ ┐A B,┐D F, A, ┐D }
Vẫn chưa xuất hiện mệnh đề đối ngẫu.
Tuyển mệnh đề 1, 2 trong danh sách mệnh đề mới:
{ ┐A  B ┐D  F  A} ≡ { B  ┐D  F } (Bỏ mệnh đề đối
ngẫu A,┐ A. Có thể không bỏ mệnh đề A).
Danh sách mệnh đề mới: { B  ┐D  F , ┐D}.
Bước 7) Tới đây không còn cách nào hợp giải để sinh ra mệnh đề mới được. Vậy
bài toán không được chứng minh.
Bài 3. Cho {(a∧b)→c, (b∧c)→d, ┐d}. Cm a→b?
Bước 1) Đưa bài toán cần chứng minh về dạng chuẩn:
Thay dấu →(kéo theo) bằng các phép toán ┐, ∨
(a∧b)→c ≡ ┐(a∧b) c
GVHD:Th.S: Huỳnh Minh Trí

Page 23


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

(b∧c)→d ≡ ┐(b∧c) d
a→b≡ ┐ab

Ta có: {(┐(a∧b) c, ┐(b∧c) d, ┐d) → ┐ab}
Bước 2) Thay phép toán ∧ ở GT và phép toán ∨ ở KL bằng dấu “,”:
Áp dụng luật De MorGan: ┐(a∧b) c ≡ ┐a∨┐b c
┐(b∧c) d ≡ ┐b∨┐c d
Ta có danh sách mệnh đề được thay:
{(┐a∨┐b c, ┐b∨┐c d, ┐d) → ┐a, b}
Bước 3) Biến đổi các dòng trên thành danh sách mệnh đề bằng cách bỏ dấu →,
đưa KL sang GT đồng thời ┐KL:

{┐a∨┐b c, ┐b∨┐c d, ┐d, a, ┐b}
Bước 4) Có cả thảy 5 mệnh đề nhưng chưa có cặp mệnh đề đối ngẫu nên chúng ta
chuyển sang B5.
Bước 5) Tuyển cặp mệnh đề 1,2 :
{┐a∨┐b c ∨ ┐b ∨┐c d} ≡ {┐a∨┐b ∨ ┐b d } (Bỏ 2 mệnh
đề đối ngẫu c, ┐c).
Bước 6) Danh sách mệnh đề mới:
{┐a∨┐b d, ┐d, a, ┐b }
Vẫn chưa có cặp mệnh đề đối ngẫu nên ta tiếp tục hợp giải.
Tuyển mệnh đề 1, 2 trong danh sách mệnh đề mới:
{┐a∨┐b d ∨┐d} ≡ {┐a∨ ┐b}
Danh sách mệnh đề mới : {┐a ∨ ┐b, a, ┐b }
Vẫn chưa có cặp mệnh để mâu thuẫn ta tiếp tục hợp giải.
Tuyển mệnh 1, 2 trong danh sách mệnh đề mới ta có:
GVHD:Th.S: Huỳnh Minh Trí

Page 24


KHOA CNTT_TRƯỜNG ĐẠI HỌC SÀI GÒN

{┐a ∨ ┐b∨ a} ≡ {┐b}
Danh sách mệnh đề mới: {┐b, ┐b}
Bước 7) Không tìm ra được mệnh đề đối ngẫu nên bài toán ban đầu không được
chứng minh.
Bài 4. Cho {(p∧q)→r, (p∧r) →s, p, q}. Hỏi r ?...
Bước 1) Đưa bài toán cần chứng minh về dạng chuẩn bằng cách :
Thay các phép toán → bằng các phép toán ┐, ∨
(p∧q)→r ≡ ┐(p∧q) r
(p∧r) →s ≡ ┐(p∧r) s

Dạng chuẩn của bài toán:

{(┐(p∧q) r, ┐(p∧r) s, p, q) →r}

Bước 2) Không có chuyển sang bước 3.
Bước 3) Biến đổi các dòng trên thành danh sách mệnh đề bằng cách bỏ dấu →,
đưa KL sang GT đồng thời ┐KL:
Đồng thời sử dụng luật De MorGan đối với mệnh đề 1, 2
{┐p ∨┐q∨ r, ┐p ∨ ┐r ∨ s, p, q, ┐r}
Bước 4) Có 5 mệnh đề nhưng chưa có mệnh đề đối ngẫu nên ta chuyển sang b5.
Bước 5) Tuyển mệnh đề 1, 3:
{┐p ∨┐q ∨ r p} ≡ {┐q ∨ r} (bỏ 2 mệnh đề đối ngẫu p, ┐p)
Bước 6) Danh sách mệnh đề mới : {┐q ∨ r, ┐p ∨ ┐r ∨ s, p, q, ┐r }
Chưa có mệnh đề đối ngẫu nên tiếp tục lặp lại b5, b6 để xây dựng mệnh đề mới.
Tuyển mệnh đề 1, 4 :
{┐p ∨ r ∨ q} ≡ {r} (Bỏ mệnh đề đối ngẫu q, ┐q)
Danh sách mệnh đề mới : {r, ┐p ∨ ┐r ∨ s, p, q, ┐r }
Bước 7) Tìm được cặp mệnh đề đối ngẫu {r, ┐r} trong danh sách mệnh đề mới.
Vậy bài toán ban đầu đã được chứng minh.
GVHD:Th.S: Huỳnh Minh Trí

Page 25


×