You are on page 1of 7

Biểu diễn tri thức trong máy tính

1 Đặt vấn đề
Các phương pháp tìm kiếm có thể giải quyết nhiều bài toán. Tuy nhiên các phương pháp tìm
kiếm chỉ quan tâm đến việc đường đi đến lời giải mà không quan tâm đến ngữ cảnh của mỗi
trạng thái. Việc tìm lời được lời giải là hữu ích nhưng trong thực tế, con người đôi khi còn
mong muốn nhiều hơn một lời giải mà cần có một sự giải thích cho lời giải. Hay nói cách
khác máy tính cần có khả năng biểu diễn cho người dùng “hiểu” được các bước hoạt động
của mình để đạt được lời giải. Một trong những mục tiêu của TTNT là đề xuất phương pháp
biểu diễn và xử lý tri thức dựa trên các quá trình lập luận của con người.
Logic tính toán là công cụ đáp ứng được yêu cầu đặt ra xét trên cả hai phương diện người
và máy. Thứ nhất logic mô tả quá trình biểu diễn thông tin, suy diễn, lập luận của con người
do đó lập luận logic có thể hiểu được bởi con người (và được nhiều người sử dụng trong hoạt
động thường ngày). Thứ hai logic có một dạng biểu diễn hình thức (logic tính toán) mà máy
tính có thể hiểu và xử lý được.
Logic là một ngôn ngữ hình thức, bao gồm một tập cú pháp và ngữ nghĩa. Đơn vị cơ bản
trong một ngôn ngữ là câu (tương tự như trong ngôn ngữ tiếng Việt). Cú pháp là các quy tắc
để viết một câu hợp lệ trong ngôn ngữ và ngữ nghĩa quy định cách hiểu của những câu hợp lệ
trong ngôn ngữ. Có hai loại logic: logic mệnh đề và logic vị từ.

2 Logic mệnh đề
2.1 Cú pháp
Logic mệnh đề có cú pháp và ngữ nghĩa rất đơn giản. Các câu cơ bản của logic mệnh đề bao
gồm câu true, false và các biến mệnh đề, ký hiệu bằng các chữ cái viết hoa, ví dụ: P, Q, R, S,
A, B, C,… Mỗi biến mệnh đề đại diện cho một sự kiện trong bài toán. Ví dụ: P là “Trời
nắng”, Q là “Phơi đồ”,…
Các câu phức được tạo bằng cách sử dụng các phép nối. Có 5 phép nối trong logic với độ
ưu tiên từ cao đến thấp như sau:  (phủ định),  (và),  (hay),  (suy ra),  (tương đương).
Ví dụ: ta có các câu sau:
a) P  Q
b) P  R  true  Q  (P  R)  (true  Q)
c) P  Q  R  Q  P  _________________________
d) __________________  _________________________
e) __________________  _________________________
Ngoài ra không còn câu nào khác hợp lệ trong logic mệnh đề!

1
2.2 Ngữ nghĩa
Mỗi câu trong logic mệnh đề có một trong hai nghĩa: đúng/sai (true/false). Câu true luôn
luôn đúng và câu false luôn luôn sai. Giá trị của các câu phức được tính dựa vào giá trị các
câu cơ bản và quy ước của các phép nối và cho bởi bảng chân trị sau:
P Q P PQ PQ PQ QP PQ
f f t F f t t t
f t t F t t f f
t f f F t f t f
t t f T t t t t

Lưu ý: từ bảng chân trị ta thấy: P  Q  _____________


Ví dụ: cho biết giá trị của một số câu logic sau:
P Q P P P  P ((P  Q)  P)  Q ((P  Q)  P)  Q ((P  Q)  Q)  P
f f
f t
t f
t t
Những câu logic luôn đúng trong mọi trường hợp được gọi là những câu hợp lệ. Đây là
những quy luật trong suy diễn của con người để có được những suy luận hợp lý. Tam đoạn
luận là luật suy diễn được Aristotle phát biểu:
PQ
P
Q
Câu này được đọc là: Nếu (P  Q đúng) và (P đúng) thì (Q đúng). Đây là luật mô tả các
quá trình suy nghĩ hợp lý. Tam đoạn luận cho phép ta rút ra câu mới (Q) khi đã biết được
những câu đúng trước đó.

2.3 Bài toán suy dẫn


Bài toán suy dẫn được phát biểu như sau: cho KB (Knowledge Base - cơ sở tri thức) là một
tập các câu logic. Câu  được gọi là suy dẫn được từ KB khi các câu trong KB có chân trị
đúng thì  cũng đúng.
Ví dụ: Cho KB = {P  Q; P  R; Q  R  S}. Hỏi câu S có được suy ra từ KB hay
không?
Để chứng minh một câu logic, ta xuất phát từ các câu ban đầu (có chân trị đúng theo điều
kiện của giả thiết), viết thêm những câu đúng mới dựa vào các câu đúng ban đầu và các luật
suy diễn. Việc chứng minh kết thúc thành công câu cần được chứng minh xuất hiện trong
bước chứng minh hoặc kết thúc thất bại (không chứng minh được) khi không thể viết thêm
được câu mới.
Các luật suy diễn được sử dụng sử dụng trong lập luận tự nhiên bao gồm:

2
PQ PQ P PQ
P Q Q
Q P PQ P
(Tam đoạn (Tam đoạn (Nối VÀ) (Bỏ VÀ)
luận) luận phủ định)
Áp dụng vào ví dụ trên, việc chứng minh được thực hiện qua các bước:
1. {P  Q; P  R; Q  R  S} (bỏ VÀ)
2. {P  Q; P  R; Q  R  S; P} (TĐL)
3. {P  Q; P  R; Q  R  S; P; R} (bỏ VÀ)
4. {P  Q; P  R; Q  R  S; P; R; Q} (nối VÀ)
5. {P  Q; P  R; Q  R  S; P; R; Q; Q  R} (TĐL)
6. {P  Q; P  R; Q  R  S; P; R; Q; Q  R, S} (đpcm)
Phương pháp suy diễn tự nhiên dựa vào tam đoạn luận có thể dùng chứng minh bài toán
suy dẫn. Tuy nhiên phương pháp này cần phải chia nhiều trường hợp đối với trường hợp như
(P  Q  R) để xử lý nên không hiệu quả (xem trong Thuật toán Vương Hạo). Hợp giải là
phương pháp chứng minh đầy đủ dành cho logic mệnh đề.

2.4 Thuật toán hợp giải (Robinson)

2.4.1 Luật hợp giải


Luật hợp giải là mở rộng của tam đoạn luận.
P  Q
Q R
PR
Trong phương pháp hợp giải, ta chỉ cần sử dụng 1 luật hợp giải như trên (thay vì 4 luật
như trong suy diễn tự nhiên) và phương pháp hợp giải không cần thực hiện chia trường hợp
nên có số bước thực hiện ít.
Phương pháp hợp giải dựa trên chứng minh phản chứng. Để chứng minh KB suy dẫn được
câu , ta giả sử  là sai và chứng minh điều này mâu thuẫn với giả thiết. Hay nói cách khác
ta tìm cách chứng minh mệnh đề (KB  ) là sai. Nếu chứng minh được mệnh đề này sai
thì bài toán suy dẫn ban đầu là đúng, KB suy dẫn được , còn ngược lại KB không suy dẫn
được .
Việc chứng minh (KB  ) sai là “dễ” vì ta chỉ cần tìm một cặp mệnh đề mâu thuẫn (ví
dụ P và P) trong biểu thức trên và kết thúc việc chứng minh (lưu ý các biểu thức trong KB
được nối với nhau bằng dấu VÀ). Ngược lại ta có thể dùng luật hợp giải để viết ra thêm
những câu mới và tiến hành kiểm tra tiếp tục. Nếu việc kiểm tra không thành công và không
thể viết ra thêm câu mới thì bài toán là không suy dẫn được.
Để áp dụng được luật hợp giải, việc đầu tiên là biến đổi tất cả các câu logic trong KB về
dạng hội chuẩn.

3
2.4.2 Dạng hội chuẩn (CNF)
Dạng hội chuẩn là tập hợp các câu logic được tạo thành bởi các từ logic (bao gồm ký hiệu
mệnh đề hoặc phủ định ký hiệu mệnh đề) và phép hội (phép HAY).
Ví dụ: các câu sau là dạng hội chuẩn: A  B  C, B  D,  A, B  C, _______________
Ví dụ: các câu sau không phải hội chuẩn: A  (B  C), (C D), B  C, _____________
Một câu bất kỳ trong logic mệnh đề có thể được biến đổi về dạng hội chuẩn qua 3 bước
sau:
1. Loại bỏ các dấu mũi tên (, ) bằng định nghĩa
    (  )  (  )
      
2. Phân phối phủ định
  
(  )     (De Morgan)
(  )     (De Morgan)
3. Phân phối  vào  (tách câu):
  (  )  (  )  (  )
Ví dụ 1: biến đổi câu về dạng hội chuẩn (A B)  (C  D)
Bước 1: _______________________________________
Bước 2: _______________________________________
Bước 3: _______________________________________
Ví dụ 2: P  Q  R  Q  P
Bước 1: _______________________________________
Bước 2: _______________________________________
Bước 3: _______________________________________

Ví dụ 3: Hãy biến đổi câu logic của bạn (ở phần 2.1) về dạng hội chuẩn.

2.4.3 Thuật toán Hợp giải (Robinson – Davis Putman)


1. Biến đổi tất cả các câu thành dạng CNF
2. Lấy phủ định kết luận, đưa vào KB
3. Lặp
a. Nếu trong KB có chứa hai mệnh đề mâu thuẫn (ví dụ: P và P) thì trả về true
b. Sử dụng một biến mệnh đề để hợp giải:
 Lấy tất cả các câu chứa biến mệnh đề được chọn.

4
 Áp dụng luật hợp giải lên mọi cặp câu chứa khẳng định và phủ định của
biến mệnh đề.
 Viết các câu kết quả mới và xoá các câu đã sử dụng.
c. Lặp cho đến khi không còn biến mệnh đề nào có thể hợp giải được.
4. Trả về false

Ví dụ: Cho tập cơ sở tri thức:


KB = { A  B  C, C  E  F, B  E ,A}
Biến đổi tập cơ sở tri thức trên về dạng hội chuẩn và chứng minh F được suy dẫn từ
tập cơ sở tri thức trên bằng phương pháp Robinson (DP).
Biến đổi về dạng hội chuẩn:
 A  B  C  (A  B)  (A  C)
 C  E  F  __________________
 B  E  ___________________

Phủ định kết luận: F


Chứng minh bằng hợp giải:
1. A  B, A  C, ___________________________, A, F
2. B, C, ______________________________, F
3. ______________________________________
4. ______________________________________
5. ______________________________________
Kết luận: __________________________________
Nhận xét: thuật toán hợp giải kết thúc sau tối đa n bước chứng minh với n là số biến
mệnh đề có trong cơ sở tri thức ban đầu.

2.5 Thuật toán Vương Hạo – Suy diễn tự nhiên theo trường hợp
Một phương pháp khác thường được đề cập trong một số tài liệu (cũ) để chứng minh bài toán
suy dẫn là thuật toán Vương Hạo. Thuật toán Vương Hạo dựa vào một số trường hợp suy dẫn
tự nhiên như sau:
AA
AB A
AAC
AB AC
Những câu logic trên luôn đúng nên bài toán suy dẫn được chứng minh khi một mệnh đề
(A) vừa xuất hiện ở tiền đề vừa xuất hiện ở kết luận. Tổng quát, thuật toán Vương Hạo tìm

5
cách đưa câu cần chứng minh về dạng trên bằng cách tách câu logic thành các trường hợp
như trên.
1. Đưa bài toán cần chứng minh về dạng chuẩn:
GT1, GT2, ..., GTn  KL1, KL2, ..., KLm
Trong đó các GTi và j KL là các câu chỉ gồm các phép  ,  , ¬ (không chứa phép 
hay ). Lưu ý: dấu phẩy (,) ở vế trái tương đương với  , ở vế phải tương đương với .
2. Lặp
a. Nếu tồn tại một câu có phép  ở đầu thì chuyển vế câu và loại bỏ phép 
b. Thay các dấu  ở vế trái và các dấu  ở vế phải bằng dấu phẩy (,). Khi đó vế trái
chỉ còn dấu  và  , về phải chỉ còn dấu  và .
c. Tách dòng:
 Nếu dòng hiện tại có dạng: GT1, GT2, ..., AB, …, GTn  KL1, KL2,..., KLm
thì thay bằng hai dòng:
GT1, GT2, ..., A, …, GTn  KL1, KL2, ..., KLm
GT1, GT2, ..., B, …, GTn  KL1, KL2, ..., KLm
 Nếu dòng hiện hành có dạng: GT1, GT2, ...,GTn KL1, KL2,…, AB,...,KLm
thì thay bằng hai dòng:
GT1, GT2, ..., GTn  KL1, KL2, ..., A,…, KLm
GT1, GT2, ..., GTn  KL1, KL2, ..., B,…, KLm
d. Một dòng được chứng minh nếu tồn tại một mệnh đề ở cả hai vế.
e. Một dòng không thể tách cũng không thể chuyển vế dấu ¬ mà không có
biến mệnh đề chung ở cả hai vế thì không được chứng minh.
Vòng lặp kết thúc khi mọi dòng được chứng minh hay tồn tại một dòng không được chứng
minh. Bài toán ban đầu được chứng minh nếu mọi dòng tách ra từ nó được chứng minh.

Ví dụ: Cho KB = {A  B  D; A  C; C  B}. Chứng minh D được suy dẫn từ các câu
trên.
Chứng minh:
Biến đổi: A  B  D, __________________  D
Tách dòng:
1. A, ________________________ D
2. B, ________________________ D
3. D, _________________________D (được cm)
Chuyển vế:

6
1. ________________________ D, A
2. ________________________ D, B
Tách dòng:
___. _____________________________
___. _____________________________
Kết luận: ____________________________.
Nhận xét: Thuật toán Vương Hạo sử dụng cách chia trường hợp để chứng minh. Giả
sử mỗi câu trong cơ sở tri thức có thể được chia thành 2 trường hợp (mỗi câu bên tiền
đề có 1 dấu  và bên kết luận có 1 dấu ). Khi đó số trường hợp (số dòng cần xét) là
2n. Thuật toán Vương Hạo rõ ràng không hiệu quả! (Hãy làm thử các bài tập trong
phần hợp giải để đối chiếu).