Giáo trình Nhập môn Trí tuệ nhân tạo (Phần 2)

CHƢƠNG 4: LOGIC VỊ TỪ  
Logic mệnh đề cho phép ta biểu diễn các sự kiện, mỗi kí hiệu trong logic mệnh đề  
đƣợc minh họa nhƣ là một sự kiện trong thế giới hiện thực, sử dụng các kết nối logic ta  
có thể tạo ra các câu phức hợp biểu diễn các sự kiện mang ý nghĩa phức tạp hơn. Nhƣ  
vậy khả năng biểu diễn của logic mệnh đề chỉ giới hạn trong phạm vi thế giới các sự  
kiện.  
Thế giới hiện thực bao gồm các đối tượng, mỗi đối tƣợng có những tính chất riêng  
để phân biệt nó với các đối tƣợng khác. Các đối tƣợng lại có quan hệ với nhau. Các  
mối quan hệ rất đa dạng và phong phú. Chúng ta có thể liệt kê ra rất nhiều ví dụ về đối  
tƣợng, tính chất, quan hệ.  
Đối tƣợngmột cái bàn, một cái nhà, một cái cây, một con ngƣời, một con số...  
Tính chấtCái bàn có thể có tính chấtcó bốn chân, làm bằng gỗ, không có ngăn  
kéo. Con số có thể có tính chất là số nguyên, số hữu tỉ, là số chính phƣơng..  
Quan hệcha con, anh em, bè bạn (giữa con ngƣời) ; lớn hơn nhỏ hơn, bằng nhau  
(giữa các con số); bên trong, bên ngoài nằm trên nằm dƣới (giữa các đồ vật)...  
HàmMột trƣờng hợp riêng của quan hệ là quan hệ hàm. Chẳng hạn, vì mỗi ngƣời có  
một mẹ, do đó ta có quan hệ hàm ứng mỗi ngƣời với mẹ của nó.  
Logic vị từ là mở rộng của logic mệnh đề. Nó cho phép ta mô tả thế giới với các đối  
tƣợng, các thuộc tính của đối tƣợng và các mối quan hệ giữa các đối tƣợng. Nó sử  
dụng các biến (biến đối tƣợng) để chỉ một đối tƣợng trong một miền đối tƣợng nào đó.  
Để mô tả các thuộc tính của đối tƣợng, các quan hệ giữa các đối tƣợng, trong logic vị  
từ, ngƣời ta dựa vào các vị từ (predicate). Ngoài các kết nối logic nhƣ trong logic  
mệnh đề, logic vị từ còn sử dụng các lượng tử. Chẳng hạn, lƣợng tử (với mọi) cho  
phép ta tạo ra các câu nói tới mọi đối tƣợng trong một miền đối tƣợng nào đó. Logic vị  
từ đóng vai trò cực kì quan trọng trong biểu diễn tri thức, vì khả năng biểu diễn của nó  
(cho phép biểu diễn tri thức về thế giới với các đối tƣợng, các thuộc tính của đối tƣợng  
và các quan hệ của đối tƣợng) và hơn nữa, nó là cơ sở cho nhiều ngôn ngữ logic khác.  
4.1. Cú pháp và ngnghĩa ca logic vtừ  
4.1.1. Cú pháp  
a) Các ký hiệu  
Logic vị từ sử dụng các loại ký hiệu sau đây:  
- Các ký hiệu hằng: a, b, c, an, Ba, John,...  
- Các ký hiệu biến: x, y, z, u, v, w,...  
- Các ký hiệu vị từ: P, Q, R, s, Like, Havecolor, Prime,...  
119  
Mỗi vị từ là vị từ của n biến (n0). Chẳng hạn Like là vị từ của hai biến, Prime là vị  
từ một biến. Các ký hiệu vị từ không biến là các ký hiệu mệnh đề.  
- Các ký hiệu hàm: f, g, cos, sin, mother, husband, distance,... Mỗi hàm là hàm của  
n biến (n1). Chẳng hạn, cos, sin là hàm một biến, distance là hàm của ba biến.  
- Các ký hiệu kết nối logic: (hội), (tuyển), (phủ định), (kéo theo), (tƣơng  
đƣơng).  
- Các ký hiệu lƣợng tử: (với mọi), (tồn tại).  
- Các ký hiệu ngăn cách: dấu phẩy, dấu mở ngoặc và dấu đóng ngoặc.  
b) Các hạng thức  
Các hạng thức (term) là các biểu thức mô tả các đối tƣợng. Các hạng thức đƣợc xác  
định đệ quy nhƣ sau.  
Các ký hiệu hằng và các ký hiệu biến là hạng thức.  
Nếu t1, t2, t3, .., tn n hạng thức và f là một ký hiệu hàm n biến thì f(t1, t2, .., tn) là  
hạng thức. Một hạng thức không chứa biến đƣợc gọi là một hạng thức cụ thể (ground  
term).  
Chẳng hạn, An là ký hiệu hằng, mother là ký hiệu hàm một biến, thì mother (An) là  
một hạng thức cụ thể.  
c) Các công thức phân tử  
Chúng ta sẽ biểu diễn các tính chất của đối tƣợng, hoặc các quan hệ của đối tƣợng  
bởi các công thức phân tử (câu đơn).  
Các công thức phân tử (câu đơn) đƣợc xác định đệ quy nhƣ sau:  
- Các ký hiệu vị từ không biến (các ký hiệu mệnh đ) là câu đơn.  
Nếu t1, t2,..., tn là n hạng thức và p là vị từ của n biến thì p(t1, t2,..., tn) là câu đơn.  
Chẳng hạn, Hoa là một ký hiệu hằng, Love là một vị từ của hai biến, husband là  
hàm của một biến, thì Love (Hoa, husband(Hoa)) là một câu đơn.  
d) Các công thức  
Từ công thức phần tử, sử dụng các kết nối logic và các lƣợng tử, ta xây dựng nên  
các công thức (các câu).  
Các công thức đƣợc xác định đệ quy nhƣ sau:  
(1) Các công thức phân tử là công thức;  
(2) Nếu G và H là các công thức, thì (G H), (G H), (G), (GH), (GH) là  
công thức;  
(3) Nếu G là một công thức và x là biến thì các biểu thức (x G), (x G) là  
công thức.  
120  
Các công thức không phải là công thức phân tử sẽ đƣợc gọi là các câu phức. Các  
công thức không chứa biến sẽ đƣợc gọi là công thức cụ thể. Khi viết các công thức ta  
sẽ bỏ đi các dấu ngoặc không cần thiết, chẳng hạn các dấu ngoặc ngoài cùng.  
Lƣợng tử phổ dụng cho phép mô tả tính chất của cả một lớp các đối tƣợng, chứ  
không phải của một đối tƣợng, mà không cần phải liệt kê ra tất cả các đối tƣợng trong  
lớp. Chẳng hạn sử dụng vị từ Elephant(x) (đối tƣợng x là con voi) và vị từ Color(x,  
Gray) (đối tƣợng x có mầu xám) thì câu"tất cả các con voi đều có mầu xám"có thể  
biểu diễn bởi công thức x (Elephant(x) Color(x, Gray)).  
Lƣợng tử tồn tại cho phép ta tạo ra các câu nói đến một đối tƣợng nào đó trong một  
lớp đối tƣợng mà nó có một tính chất hoặc thoả mãn một quan hệ nào đó. Chẳng hạn  
bằng cách sử dụng các câu đơn Student(x) (x là sinh viên) và inside(x, P301), (x ở  
trong phòng 301), ta có thể biểu diễn câu"Có một sinh viên ở phòng 301"bởi biểu thức  
x (Student(x) Inside(x, P301).  
Một công thức là công thức phân tử hoặc phủ định của công thức phân tử đƣợc gọi  
literal. Chẳng hạn, Play(x, Football), Like(Lan, Rose) là các literal. Một công thức  
là tuyển của các literal sẽ đƣợc gọi là câu tuyển. Chẳng hạn, Male(x) Like(x,  
Foodball) là câu tuyển.  
trong công thức (x G), hoặc x G trong đó G là một công thức nào đó, thì mỗi  
xuất hiện của biến x trong công thức G đƣợc gọi là xuất hiện buộc. Một công thức mà  
tất cả các biến đều là xuất hiện buộc thì đƣợc gọi là công thức đóng.  
Ví dụ: Công thức xP(x, f(a, x))  y Q(y) là công thức đóng, còn công thức x  
P(x, f(y, x)) không phải là công thức đóng, vì sự xuất hiện của biến y trong công thức  
này không chịu ràng buộc bởi một lƣợng tử nào cả (Sự xuất hiện của y gọi là sự xuất  
hiện tự do).  
Trong giới hạn của logic vi tta chỉ quan tâm tới các công thức đóng.  
4.1.2. Ngữ nghĩa  
Cũng nhƣ trong logic mệnh đề, nói đến ngữ nghĩa là chúng ta nói đến ý nghĩa của  
các công thức trong một thế giới hiện thực nào đó mà chúng ta sẽ gọi là một minh họa.  
Để xác định một minh hoạ, trƣớc hết ta cần xác định một miền đối tƣợng (nó bao  
gồm tất cả các đối tƣợng trong thế giới hiện thực mà ta quan tâm).  
Trong một minh hoạ, các ký hiệu hằng sẽ đƣợc gắn với các đối tƣợng cụ thể trong  
miền đối tƣợng các ký hiệu hàm sẽ đƣợc gắn với một hàm cụ thể nào đó. Khi đó, mỗi  
hạng thức cụ thể sẽ chỉ định một đối tƣợng cụ thể trong miền đối tƣợng. Chẳng hạn,  
nếu an là một ký hiệu hằng, Father là một ký hiệu hàm, nếu trong minh hoạ An ứng  
121  
với một ngƣời cụ thể nào đó, còn Father(x) gắn với hàm; ứng với mỗi x là cha của nó,  
thì hạng thức Father(An) sẽ chỉ ngƣời cha của An.  
a) Ngữ nghĩa của các câu đơn  
Trong một minh hoạ, các ký hiệu vị từ sẽ đƣợc gắn với một thuộc tính, hoặc một  
quan hệ cụ thể nào đó. Khi đó mỗi công thức phân tử (không chứa biến) sẽ chỉ định  
một sự kiện cụ thể. Đƣơng nhiên sự kiện này có thể là đúng (True) hoặc sai (False).  
Chẳng hạn, nếu trong minh hoạ, ký hiệu hằng Lan ứng với một cô gái cụ thể nào đó,  
còn student(x) ứng với thuộc tính"x là sinh viên"thì câu Student (Lan) có giá trị chân  
lý là True hoặc False tuỳ thuộc trong thực tế Lan có phải là sinh viên hay không.  
b) Ngữ nghĩa của các câu phức hợp  
Khi đã xác định đƣợc ngữ nghĩa của các câu đơn, ta có thể thực hiện đƣợc ngữ  
nghĩa của các câu phức hợp (đƣợc tạo thành từ các câu đơn bằng cách liên kết các câu  
đơn bởi các kết nối logic) nhƣ trong logic mệnh đề.  
dụ:  
- Câu Student(Lan) Student(An) nhận giá trị True nếu cả hai câu Student(Lan) và  
Student(An) đều có giá trị True, tức là cả Lan và An đều là sinh viên.  
- Câu Like(Lan, Rose) Like(An, Tulip) là đúng nếu câu Like(Lan, Rose) là đúng  
hoặc câu Like(An, Tulip) là đúng.  
c) Ngữ nghĩa của các câu chứa các lượng tử  
Ngữ nghĩa của các câu x G, trong đó G là một công thức nào đó, đƣợc xác định  
nhƣ là ngữ nghĩa của công thức là hội của tất cả các công thức nhận đƣợc từ công thức  
G bằng cách thay x bởi một đối tƣợng trong miền đối tƣợng. Chẳng hạn, nếu miền đối  
tƣợng gồm ba ngƣời {Lan, An, Hoa} thì ngữ nghĩa của câu x Student(x) đƣợc xác  
định là ngữ nghĩa của câu Student(Lan) Student(An) Student(Hoa). Câu này đúng  
khi và chỉ khi cả ba câu thành phần đều đúng, tức là cả Lan, An, Hoa đều là sinh viên.  
Nhƣ vậy, công thức x G(x) là đúng nếu và chỉ nếu mọi công thức nhận đƣợc từ G  
bằng cách thay x bởi một đối tƣợng trong miền đối tƣợng đều đúng, tức là G đúng cho  
tất cả các đối tƣợng x trong miền đối tƣợng.  
Ngữ nghĩa của công thức x G(x) đƣợc xác định nhƣ là ngữ nghĩa của công thức là  
tuyển của tất cả các công thức nhận đƣợc từ G bằng cách thay x bởi một đối tƣợng  
trong miền đối tƣợng. Chẳng hạn, nếu ngữ nghĩa của câu Younger(x, 20) là"x trẻ hơn  
30 tuổi"và miền đối tƣợng gồm ba ngƣời {Lan, An, Hoa} thì ngữ nghĩa của câu x  
Yourger(x, 20) là ngữ nghĩa của câu Yourger(Lan, 20) Yourger(An, 20)   
122  
Yourger(Hoa, 20). Câu này nhận giá trị True nếu và chỉ nếu ít nhất một trong ba ngƣời  
Lan, An, Hoa trẻ hơn 20.  
Nhƣ vậy công thức x G(x) là đúng nếu và chỉ nếu một trong các công thức nhận  
đƣợc từ G bằng cách thay x bằng một đối tƣợng trong miền đối tƣợng là đúng.  
Bằng các phƣơng pháp đã trình bày ở trên, ta có thể xác định đƣợc giá trị chân lý  
(True, False) của một công thức bất kỳ trong một minh hoạ. (Lƣu ý rằng, ta chỉ quan  
tâm tới các công thức đúng).  
Sau khi đã xác định khái niệm minh hoạ và giá trị chân lý của một công thức trong  
một minh hoạ, có thể đƣa ra các khái niệm công thức vững chắc (thoả được, không  
thoả được), mô hình của công thức giống nhƣ trong logic mệnh đề.  
Ví dụ: biểu diễn các câu sau sang logic vị từ  
1. A là bố của B nếu B là anh hoặc em của một ngƣời con của A.  
Định nghĩa các vị từ sau:  
Bo(x, y)="x là bố của y"  
Anhem(x,y) ="x là anh hoặc em của y"  
Khi đó, biểu diễn dạng logic vị từ câu trên nhƣ sau:  
Bo (A, B) = Z (Bo (A, Z) (Anhem(Z, B) Anhem(B,Z))  
2. Không có vật gì là lớn nhất và không có vật gì là bé nhất  
LonHon(x,y) ="x>y"  
NhoHon(x,y) ="x<y "  
(xy LonHon(y,x))(zt NhoHon(z,t))  
4.2. Các công thức tƣơng đƣơng  
Cũng nhƣ trong logic mệnh đề, ta nói hai công thức G và H tƣơng đƣơng (viết là  
GH) nếu chúng cùng đúng hoặc cùng sai trong một minh hoạ. Ngoài các tƣơng  
đƣơng đã biết trong logic mệnh đề, trong logic vị từ còn có các tƣơng đƣơng khác liên  
quan tới các lƣợng tử. Giả sử G là một công thức, cách viết G(x) nói rằng công thức G  
có chứa các xuất hiện của biến x. Khi đó công thức G(y) là công thức nhận đƣợc từ  
G(x) bằng cách thay tất cả các xuất hiện của x bởi y. Ta nói G(y) là công thức nhận  
đƣợc từ G(x) bằngcách đặt tên lại (biến x đƣợc đổi tên lại là y).  
Chúng ta có các tƣơng đƣơng sau đây:  
x G(x)  y G(y)  
x G(x)  y G(y)  
Đặt tên lại biến đi sau lƣợng tử phổ dụng (tồn tại), ta nhận đƣợc công thức tƣơng  
đƣơng  
123  
 (x G(x))  x (G(x))  
(x G(x))  x (G(x))  
x (G(x) H(x))  x G(x)  x H(x)  
x (G(x) H(x))  x G(x)  x H(x)  
Ví dụ 4.1x Love(x, Husband(x))  y Love(y, Husband(y)).  
4.3. Chun hóa các công thc  
Từ các câu phân tử, bằng cách sử dụng các kết nối logic và các lƣợng tử ta có thể  
tạo ra các câu phức hợp có cấu trúc rất phức tạp. Để dễ dàng cho việc lƣu trữ các câu  
trong bộ nhớ, và thuận lợi cho việc xây dựng các thủ tục suy diễn, chúng ta cần chuẩn  
hoá các câu bằng cách đƣa chúng về chuẩn tắc hội (hội của các câu tuyển).  
Trong mục này chúng ta sẽ trình bày thủ tục chuyển một câu phức hợp thành một  
câu ở dạng chuẩn tắc hội tƣơng đƣơng.  
Thủ tục chuẩn hoá các công thức gồm các bƣớc sau:  
(1) Loại bỏ kéo theo. Để loại bỏ các kéo theo, ta chỉ cần thay thế công thức PQ  
bởi công thức tƣơng đƣơng PQ thay PQ bởi (PQ) (PQ).  
(2) Chuyển các phủ định tới các phân tử. Điều này đƣợc thực hiện bằng cách thay  
công thức ở vế trái bởi công thức ở vế phải trong các tƣơng đƣơng sau:  
(P) P  
(PQ) PQ  
(PQ) PQ  
(xQ) x(P)  
(xQ) x(P)  
(3) Loại bỏ các lƣợng tử tồn tại. Giả sử P(x, y) là các vị từ có nghĩa rằng"y lớn hơn  
x"trong miền các số. khi đó công thứcx (y(P(x, y)) có nghĩa là"với mọi số x tồn tại  
y sao cho y lớn hơn". Ta có thể xem y trong công thức đó là hàm của đối số x, chẳng  
hạn f(x) và loại bỏ lƣợng ty, công thức đang xét trở thành x(P(x, f(x)).  
Một cách tổng quát, giả sử y(G) là một công thức con của công thức đang xét và  
nằm trong miền tác dụng của lƣợng tử x1,..., xn. Khi đó ta có thể xem y là hàm của  
n biến x1,..., xn, chẳng hạn f(x1,..., xn). Sau đó ta thay các xuất hiện của y trong công  
thức G bởi hạng thức f(x1,..., xn) và loại bỏ các lƣợng tử tồn tại. Các hàm f đƣợc đƣa  
vào để loại bỏ các lƣợng tử tồn tại đƣợc gọi là hàm Skolem.  
Ví dụ 4.2:  
Xét công thức sau:  
124  
x(y(P(x, y) u(b(Q(a, b) yR(x, y)))  
(1)  
Công thức con yP(x, y) nằm trong miền tác dụng của lƣợng tử x, ta xem y là hàm  
của x: F(x). Các công thức con b(Q(a, b) và yR(x, y) nằm trong miền tác dụng của  
các lƣợng tử x, u nên ta xem a là hàm g(x, u) và y là hàm h(x, u) của 2 biến x, u.  
Thay các xuất hiện của y và v bởi các hàm tƣơng ứng, sau đó loại bỏ các lƣợng tử tồn  
tại, từ công thức (1) ta nhận đƣợc công thức:  
x(y(P(x, f(x)) u (Q(a, g(x, u)) R(x, h(x, u))))  
(4) Đặt lại tên các biến  
(2)  
Khi cần thiết, có thể đặt lại tên các biến sao cho theo sau các lƣợng tử phổ dụng là  
các biến có tên khác nhau. Chẳng hạn xP(x) xQ(x) có thể đặt thành xP(x)  
yQ(y) ta vẫn thu đƣợc công thức tƣơng đƣơng.  
(5) Loại bỏ các lƣợng tphổ dụng  
Sau bƣớc 4 trong công thức chỉ còn lại các lƣợng tử phổ dụng và mọi xuất hiện của  
các biến đều nằm trong miền tác dụng của các lƣợng tử phổ dụng. Ta có thể loại bỏ tất  
cả các lƣợng tử phổ dụng, công thức (2) trở thành công thức:  
P(x, f(x)) (Q(a, g(x, u)) R(x, h(x, u)))  
(3)  
Cần chú ý rằng, sau khi đƣợc thực hiện bƣớc này tất cả các biến trong công thức đƣợc  
xem là chịu tác dụng của các lƣợng tử phổ dụng.  
(6) Chuyển các tuyển tới các literal  
Bƣớc này đƣợc thực hiện bằng cách thay các công thức dạng: P(QR) bởi (PQ)  
(PR) và thay (PQ) R bởi (PQ) (QR). Sau bƣớc này công thức trở thành hội  
của các câu tuyển nghĩa là ta nhận đƣợc các công thức ở dạng chuẩn tắc hội.  
Chẳng hạn, câu (3) đƣợc chuyển thành công thức sau  
(P(x, f(x)) (Q(a, g(x, u))) (P(x, f(x)) R(x, h(x, u)))  
(7) Loại bỏ các hội  
(4)  
Một câu hội là đúng nếu và chỉ nếu tất cả các thành phần của nó đều đúng. do đó  
công thức ở dạng chuẩn tắc hội tƣơng đƣơng với tập các thành phần.  
Chẳng hạn, câu (4) tƣơng đƣơng với tập hai câu tuyển sau:  
P(f(x)) (Q(a, g(x, u))  
P(f(x)) R(x, h(x, u))  
(8) Đặt tên lại các biến  
(5)  
Đặt tên lại các biến sao cho các biến trong các câu khác nhau có tên khác nhau,  
chẳng hạn, hai câu (5) có hai biến cùng tên là x, ta cần đổi tên biến x trong câu hai  
thành z, khi đó các câu (5) tƣơng đƣơng với các câu sau  
125  
P(f(x)) (Q(a, g(x, u))  
P(f(z)) R(z, h(z, u))  
(5‟)  
nhƣ vậy, khi tri thức là một tập hợp nào đó các công thức trong logic vị từ, bằng  
cách áp dụng thủ tục trên ta nhận đƣợc CSTT chỉ gồm các câu tuyển (tức là ta luôn  
luôn có thể xem mỗi câu trong CSTT là tuyển của các literal). Hoàn toàn tƣơng tự nhƣ  
trong logic mệnh đề, mỗi câu tuyển có thể biểu diễn dƣới dạng một kéo theo, vế trái  
của các kéo theo là hội của các câu phân tử, còn vế phải là tuyển của các câu phân tử.  
dạng câu này đƣợc gọi là câu Kowlski, một trƣờng hợp quan trọng của câu Kowlski là  
câu Horn (luật if - then).  
4.4. Các lut suy din  
Trong chƣơng 3 chúng ta đã đƣa ra các luật suy diễn quan trọng trong logic mệnh  
đề: luật Modus Ponens, luật Modus Tolens, luật bắc cầu,..., luật phân giải. Chúng ta đã  
chỉ ra rằng luật phân giải là luật đầy đủ cho bác bỏ. Điều đó có nghĩa là, bằng phƣơng  
pháp chứng minh bác bỏ, chỉ sử dụng luật phân giải ta có thể chứng minh đƣợc một  
công thức có là hệ quả logic của một tập các công thức cho trƣớc hay không. Kết quả  
quan trọng này sẽ đƣợc mở rộng sang lôgic vị từ.  
ghi chú: Tất cả các luật suy diễn đã đƣợc đƣa ra trong logic mệnh đề đều đúng trong  
logic vị từ.  
4.4.1. Luật thay thế phổ dụng  
Giả sử G là một câu, câu xG(x) là đúng trong một minh hoạ nào đó nếu và chỉ nếu  
G(x) đúng đối với tất cả các đối tƣợng nằm trong miền đối tƣợng của minh hoạ đó.  
Mỗi hạng thức t ứng với một đối tƣợng vì thế nếu câu xG(x) đúng thì khi thay tất cả  
các xuất hiện của biến x bởi hạng thức t ta nhận đƣợc câu đúng. Công thức nhận đƣợc  
từ công thức G(x) bằng cách thay tất cả các xuất hiện của x bởi t đƣợc kí hiệu là  
G[x/t]. Luật thay thế phổ dụng (universal instatiation) phát biểu rằng, từ công thức  
xG(x) suy ra công thức G[x/t].  
xG(x)  
G[x / t]  
Chẳng hạn, từ câu x Like(x, Football) (mọi ngƣời đều thích bóng đá), bằng cách  
thay x bởi An ta suy ra câu Like(An, Football) (An thích bóng đá).  
4.4.2. Hợp nhất  
Trong luật thay thế phổ dụng, ta cần sử dụng phép thế các biến bởi các hạng thức để  
nhận đƣợc các công thức mới từ công thức chứa các lƣợng tử phổ dụng. Ta có thể sử  
dụng phép thế để hợp nhất các câu phân tử (tức là để các câu trở thành đồng nhất).  
126  
Chẳng hạn xét hai câu phân tử Like(an, y), Like(x, Football). Cần lƣu ý rằng hai câu  
này là hai câu y Like(An, y) và x Like(x, Football) mà để cho đơn giản ta bỏ đi các  
lƣợng tử phổ dụng. Sử dụng phép thế [x/An, y/Football] hai câu trên trở thành đồng  
nhất Like(An, Football). Trong các suy diễn, ta cần sử dụng phép hợp nhất các câu bởi  
các phép thế. Chẳng hạn, cho trƣớc hai câu:  
Friend(x, Ba) Good(x) (Mọi bạn của Ba đều là ngƣời tốt);  
Friend(Lan, y) (Lan là bạn của tất cả mọi ngƣời).  
Ta có thể hợp nhất hai câu Friend(x, Ba) Good(x) và Friend(Lan, y) bởi phép thay  
thế [x/Lan, y/Ba]. Áp dụng luật thay thế phổ dụng với phép thay thế này ta nhận đƣợc  
hai câu:  
Friend(Lan, Ba) Good(Lan);  
Friend(Lan, Ba).  
theo luật Modus Ponens, ta suy ra câu Good(Lan) (Lan là ngƣời tốt).  
Một cách tổng quát, một phép thế là một dãy các cặp xi/ti, = [x1/t1, x2/t2,..., xn/tn]  
trong đó các xi là các biến khác nhau, các ti là các hạng thức và các xi không có mặt  
trong ti (i=1,..., n). Áp dụng phép thế vào công thức G, ta nhận đƣợc công thức G, đó  
là công thức nhận đƣợc từ công thức G bằng cách thay mỗi sự xuất hiện của các xi bởi  
ti. Chẳng hạn, nếu G = P(x, y, f(a, x)) và =[x/b, y/g(z) ] thì  
G=P(b, g(z), f(a, b))  
Với hai câu phân tử G và H mà tồn tại phép thế sao cho Gvà Htrở thành đồng  
nhất (G  H) thì G và H đƣợc gọi là hợp nhất đƣợc, phép thế đƣợc gọi là hợp nhất  
tử của G và H. Chẳng hạn, hai câu Like(An, y) và Like(x, Football) là hợp nhất đƣợc  
bởi hợp nhất tử [x/An, y/Football].  
4.4.3. Luật Modus Ponens tổng quát  
Giả sử Pi, Pi' (i= 1,.., n) và Q là các công thức phân tử sao cho tất cả các cặp câu Pi,  
Pi' hợp nhất đƣợc bởi phép thế , tức là Pi=Pi'(i =1,.., n). Khi đó ta có luật:  
P ÙP Ù...ÙP Þ Q,P',P' ,..,Pn'  
1
2
n
1
2
Q'  
Trong đó Q' =Q.  
Ví dụ 4.3: Giả sử ta có các câu (Student (x) Male(x) Like(x, Football)) và  
Student(Anh), Male(Anh). Với phép thế =[x/Anh], các cặp câu Student(x),  
Student(Anh) và Male(x), Male(Anh) hợp nhất đƣợc. Do đó ta suy ra câu Like(Anh,  
Football).  
127  
4.4.4. Luật phân giải tổng quát  
a) Luật phân giải trên các câu tuyển  
Giả sử ta có hai câu tuyển A1A2...AmC và B1B2...BnD với Ai (i=1...m)  
và Bj (j=1...n) là các literal, còn C và D là các câu phân tử có thể hợp nhất đƣợc bởi  
phép thế , C=D. Khi đó ta có luật:  
A1A2...AmC  
B1B2...BnD  
A1A2...AmB1B2...Bn  
Trong đó Ai'=Ai(i=1,.., m) và Bj'=Bj(j=1,.., n)  
Trong luật phân giải này, hai câu ở tử số (giả thiết) của luật đƣợc gọi là hai câu phân  
giải đƣợc, còn câu ở mẫu số (kết luận) của luật đƣợc gọi là giải thức của hai câu ở tử  
số. Ta sẽ ký hiệu phân giải thức của hai câu A và B là Res(A, B).  
Ví dụ 4.4: Giả sử ta có hai câu A=Hear(x, Music)Play(x, Tennis) và B=Play(An,  
y)Study (An). Hai câu Play(x, Tennis) và Play(An, y) hợp nhất đƣợc bởi phép thế  
=[x/An, y/Tennis]. Từ hai câu đã cho, ta suy ra câu Hear(An, Music) Study(An).  
Hai câu A=Hear(x, Music)Play(x, Tennis) và B=Play(An, y)Study(An) là phân  
giải đƣợc và phân giải thức của chúng là Hear(An, Music)Study(An).  
b) Luật phân giải trên các câu Horn  
Câu Horn (luật if-Then) là các câu có dạng:  
P1P2...PmQ  
trong đó Pi(i =1,..., m) và Q là các câu phân tử.  
Giả sử ta có hai câu Horn P1P2...PmS Q và R1R2...Rn T, trong đó  
hai câu S và T hợp nhất đƣợc bởi phép thế , S=T Khi đó ta có luật:  
P1P2...Pm S Q,  
R1R2...Rn T  
P'1P'2...P'mR'1R'2...R'nQ'  
trong đó Pi'=Pi (i=1,.., m), Rj‟=Rj (j=1,.., n), Q'=Q.  
Trong thực tế, chúng ta thƣờng sử dụng trƣờng hợp riêng sau đây:  
Giả sử S và T là hai câu phân tử, hợp nhất đƣợc bởi phép thế . Khi đó ta có luật:  
P1P2...Pm S Q,  
      T  
P'1P'2...P'mQ'  
128  
trong đó Pi'=Pi (i=1,.., m), Q'=Q.  
Ví dụ: Xét hai câu Student(x)Male(x) Play(x, Football) và Male(Ba). Hai câu  
Male(Ba) và Male(x) hợp nhất đƣợc với phép thế =[x/Ba], do đó từ hai câu trên ta  
suy ra Student (Ba) Play (Ba, Football).  
4.5. Thuật toán hợp nhất  
Về mặt cú pháp, hạng thức và công thức phân tử có cấu trúc giống nhau, do đó ta  
gọi chung các hạng thức và các công thức phân tử là các biểu thức đơn.  
Chúng ta sẽ gọi hợp thành của hai phép thế là phép thế  sao cho với mọi  
biểu thức E ta có E() = (E). nói cụ thể hơn, hợp thành của phép thế =[x1/t1,...,  
xm, tm] và =[y1/s1,..., yn/sn] là phép thế =[x1/t1,..., xm, tm] trong đó ta cần loại bỏ  
các cặp yi/si mà yi trùng với một xk nào đó.  
Ví dụ 4.5. Xét hai phép thế:  
θ = [x|a, v|g(y, z) ]  
η = [x|b, y|c, z|f(x), v|h(a) ]  
khi đó hợp thành của chúng là phép thế θη = [x|a, v|g(c, f(x)), y|c, z|f(x)]  
Hợp nhất tử tổng quát: Giả sử E và F là hai biểu thức đơn hợp nhất đƣợc. Ta gọi  
hợp nhất tử tổng quát nhất của E và F là hợp nhất tử θ sao cho θ tổng quất hơn bất kỳ  
hợp nhất tử δ nào của E và F. nói một cách khác, θ là hợp nhất tử tổng quát nhất của E  
và F nếu với mọi hợp nhất tử δ của E và F đều tồn tại phép thế η sao cho δ=θη.  
Quan sát ví dụ trên thấy rằng phép thế θη áp đặt nhiều hạn chế cho các biến hơn là  
θ. Do đó ta sẽ nói rằng phép thế θ tổng quát hơn phép thế θη. cụ thể: phép thế [y|An,  
x|husband(z)] tổng quát hơn phép thế [y|An, x|husband(hoa), z|Hoa].  
Chẳng hạn, với các câu E= Know(an, x) và F= Know(y, husband(z)) thì hợp nhất  
tử tổng quát nhất là: θ=[y|An, x|husband(z)].  
Sau đây chúng ta sẽ trình bày thuật toán hợp nhất, đó là thuật toán đệ quy, có 3  
tham biến: hai biểu thức đơn E và F, và hợp nhất tử tổng quát nhất là θ. Thuật toán này  
sẽ dừng và cho ra hợp nhất tử tổng quát nhất θ nếu E và F hợp nhất đƣợc. Nếu E và F  
không hợp nhất đƣợc, thuật toán cũng sẽ dừng và cho thông báo về điều đó.  
Ta sẽ giả sử rằng E và F chứa các biến có tên khác nhau, nếu không ta chỉ cần đặt  
tên lại các biến. Trong thuật toán, ta cần tìm sự khác biệt giữa hai biểu thức. Sự khác  
biệt đƣợc xác định nhƣ sau: Đọc hai biểu thức đồng thời từ trái sang phải cho tới khi  
gặp hai ký hiệu khác nhau trong biểu thức. Trích ra hai biểu thức con bắt đầu từ các ký  
hiệu khác nhau đó. cặp biểu thức con đó tạo thành sự khác biệt giữa hai biểu thức đã  
cho.  
129  
Ví dụ 4.6: Sự khác biệt giữa hai câu Like(x, f(a, g(z))) và Like(x, y) là cặp (f(a,  
g(z)), y) còn sự khác biệt giữa hai câu Know(x, f(a, u)) và Know(x, f(a, g(b)) là cặp (u,  
g(b)).  
Thuật toán hợp nhất đƣợc mô tả bởi thủ tục đệ quy sau:  
Input: E, F là các câu;  
Output: Thông báo thành công và đƣa ra θ nếu E, F hợp nhất đƣợc hoặc thông báo  
không hợp nhất đƣợc.  
Procedure Unify(E, F, θ);  
Begin  
1.Xác định sự khác biệt giữa E và F;  
2.if không có sự khác biệt then {thông báo thành công;stop};  
3.if sự khác biệt là cặp (x, t), trong đó x là biến, t là hạng thức không chứa x  
then  
{
3.1. E←E[x|t]; F←F[x|t];  
// tức là áp dụng phép thế [x|t] vào các biểu thức E và F  
3.2. θ←θ [x/t]; // hợp thành của phép thế q và phép thế [x/t]  
3.3. Unify(E, F, θ) ;  
}
else  
{thông báo thất bại; stop}  
End;  
Nhận xét: Thuật toán hợp nhất trên luôn luôn dừng sau một số hữu hạn bƣớc vì cứ  
mỗi lần bƣớc 3.3. đƣợc thực hiện thì số biến còn lại trong hai biểu thức sẽ bớt đi 1, mà  
số biến trong hai biểu thức là hữu hạn. Để biết hai biểu thức P và Q có hợp nhất đƣợc  
hay không ta chỉ cần gọi thủ tục Unify(P, Q, θ) trong đó θ là phép thế rỗng.  
Ví dụ 4.7: Xét hai biểu thức sau:  
P(a, x, f(a, g(x, y)))  
P(u.h(a), f(u, v))  
Sự khác biệt giữa hai biểu thức này là (a, u). Thế u bởi a ta nhận đƣợc hai biểu thức  
sau:  
(1)  
P(a, x, f(a, g(x, y)))  
P(a, h(a), f(a, v))  
(2)  
và phép thế: q = [u|a]  
130  
Sự khác biệt giữa hai biểu thức (2) là (x, h(a)).Thay x bởi h(a), ta có hai biểu thức  
sau:  
P(a, h(a), f(a, g(h(a), y)))  
P(a, h(a), f(a, v))  
(3)  
và phép thế: q = [u|a, x|h(a)]  
Sự khác biệt giữa hai biểu thức (3) là (g(h(a), y), v).Thế v bởi g(h(a), y), hai biểu  
thức (3) trở thành đồng nhất: P(a, h(a), f(a, g(h(a), y)))  
Nhƣ vậy, hai câu (1) hợp nhất đƣợc với hợp nhất tử tổng quát nhất là:  
q = [u|a, x|h(a), v|g(h(a), y)]  
4.6. Chng minh bng lut phân gii  
giả sử chúng ta có một CSTT gồm các câu trong logic vị từ. Chúng ta luôn luôn  
xem CSTT là thoả đƣợc, tức là có một minh hoạ mà tất cả các câu trong CSTT đều  
đúng. Chẳng hạn minh họa đó là thế giới hiện thực của vấn đề mà chúng ta đang quan  
tâm, và CSTT gồm các câu mô tả sự hiểu biết của chúng ta về thế giới hiện thực đó.  
Không mất tính tổng quát, ta có thể xem các câu trong CSTT là các câu tuyển.  
Chúng ta có thể sử dụng luật phân giải để suy ra các câu mới là hệ quả logic của  
CSTT.  
Ví dụ 4.8. Giả sử CSTT gồm các câu tuyển sau:  
P(w) Q(w)  
P(x) R(x)  
Q(y)  
(1)  
(2)  
(3)  
(4)  
R(z) S(z)  
Sau đây chúng ta sẽ đƣa ra một chứng minh của câu S(a) từ CSTT trên bằng luật  
phân giải. Áp dụng luật phân giải cho câu (2) và (4) với phép thế [x/a, z/a], ta suy ra  
câu sau:  
P(a) S(a)  
Áp dụng luật phân giải cho câu (1) và (3) với phép thế [w/a, y/a] ta nhận đƣợc câu:  
P(a) (6)  
(5)  
Áp dụng luật phân giải cho câu (5) và (6), ta suy ra câu S(a).  
Chứng minh bằng cách áp dụng các luật suy diễn để dẫn tới điều cần phải chứng  
minh (nhƣ chứng minh trên) đƣợc gọi là chứng minh diễn dịch. Nhƣng cần biết rằng,  
luật phân giải không phải là luật đầy đủ cho diễn dịch, tức là từ một tập các tiên đề, chỉ  
sử dụng luật phân giải chúng ta không thể sinh ra tất cả các câu là hệ quả logic của các  
tiên đề đã cho.  
131  
Tuy nhiên định lý phân giải vẫn còn đúng trong logic vị từ. Điều đó có nghĩa là, chỉ  
sử dụng luật phân giải ta có thể xác định đƣợc một tập câu trong logic vị từ là thoả  
đƣợc hay không thoả đƣợc. Nếu một tập câu là không thoả đƣợc thì qua một số bƣớc  
áp dụng luật phân giải ta sẽ sinh ra một câu rỗng (tức là dẫn tới mâu thuẫn).  
Để chứng minh câu h là hệ quả logic của tập các câu {G1, G2,..,..Gn} (các tiên đề),  
ta có thể áp dụng phƣơng pháp chứng minh bác bỏ, tức là chứng minh tập câu {G1,  
G2,..,..Gn, H} không thoả đƣợc. Mặt khác, ở trên ta đã chỉ ra rằng, luật phân giải cho  
phép ta xác định đƣợc một tập câu là thoả đƣợc hay không thoả đƣợc. Vì vậy luật phân  
giải đƣợc xem là luật đầy đủ cho bác bỏ.  
dụ 4.9:  
Từ CSTT gồm các câu (1) -(4) trong ví dụ trên, ta có thể chứng minh đƣợc câu S(a)  
bằng phƣơng pháp bác bỏ nhƣ sau. Thêm vào CSTT câu:  
S(a)  
(7)  
(lấy phủ định của câu cần chứng minh). áp dụng luật phân giải cho câu (3) và (7)  
với phép thế [y/a], ta suy ra câu:  
Q(a)  
Từ câu (1) và (8) với phép thế [w/a], ta nhận đƣợc câu:  
P(a) (9)  
Từ câu (4) và (7) với phép thế [z/a], ta suy ra câu:  
R(a) (10)  
Từ câu (2) và (10) với phép thế [x/a] ta nhận đƣợc câu:  
P(a) (11)  
Áp dụng luật phân giải cho câu (9) và (11) ta nhận đƣợc câu rỗng (mâu thuẫn: P(a)  
và P(a)).  
(8)  
Bây giờ chúng ta trình bày thủ tục tổng quát sử dụng luật phân giải để chứng minh  
một công thức H là hoặc không là hệ quả logic của một tập công thức {G1,G2,..,..Gn}.  
Input: G={G1, G2,..,..Gn} các công thức;  
H_Công thức cần chứng minh;  
Output: Thông báo H đúng hoặc H sai.  
Procedure Proof_by_Resolution  
Begin  
1. Biến đổi các công thức Gi (i=1,..., n) và H về dạng chuẩn hội;  
2. Từ các dạng chuẩn hội nhận đƣợc ở bƣớc 1, thành lập tập các câu tuyển C;  
3. Repeat  
132  
3.1. Chọn ra hai câu a và B trong C;  
3.2. if A và b phân giải đƣợc then tính phân giải thức Res(A, B) ;  
3.3. If ResA, B) là câu mới then thêm Res(A, B) vào tập C;  
Until nhận đƣợc câu rỗng hoặc không có câu mới nào đƣợc sinh ra;  
4. If câu rỗng đƣợc sinh ra then thông báo h đúng  
else thông báo H sai;  
End  
Sau đây chúng ta làm sáng tỏ thêm một số bƣớc trong thủ tục chứng minh bằng luật  
phân giải:  
1. Để thực hiện bƣớc 1, ta cần áp dụng thủ tục chuẩn hoá các câu về dạng chuẩn  
hội.  
2. Để thực hiện bƣớc 3.2, ta cần áp dụng thủ tục hợp nhất cho các cặp câu phân tử  
(Ai, Bj), trong đó Ai Bj (hoặc Ai và Bj) là các thành phần của các câu tuyển A và B  
tƣơng ứng. Với mỗi cặp nhƣ thế hợp nhất đƣợc thì áp dụng luật phân giải trên các câu  
tuyển để tính phân giải thức Res(A, B).  
3. Bƣớc 3.1 là bƣớc chƣa đƣợc xác định rõ ràng. có rất nhiều phƣơng pháp chọn ra  
hai câu A và B từ tập câu C. Mục sau chúng ta sẽ trình bày các chiến lƣợc, nó cho  
phép ta lấy ra hai câu ở mỗi bƣớc 3 sao cho vòng lặp ở bƣớc 3 đƣợc thực hiên hiệu  
quả. Các chiến lƣợc này đƣợc gọi là chiến lược phân giải.  
Ví dụ 4.10. Cho các câu sau:  
An là con trai.  
Thủy là con gái.  
Tóc của con gái dài hơn tóc của con trai.  
Hãy chứng minh: Tóc của Thủy dài hơn tóc của An  
- Định nghĩa các vị từ sau:  
Contrai(An)  
Congai(Thuy)  
Tóc của con gái dài hơn tóc của con trai:  
xy Contrai(x) Congai(y) Tocdaihon(y,x)  
Cần chứng minh: Tocdaihon(Thuy,An).  
- Chuẩn hóa:  
Contrai(An) (1)  
Congai(Thuy) (2)  
Contrai(x)  Congai(y) Tocdaihon(y,x)  
(3)  
133  
- (1), (3) với phép thế [x/An]  Congai(y) Tocdaihon(y,An) (4)  
- (4), (2) với phép thế [y/Thuy] Tocdaihon(Thuy,An)  
Ví dụ 4.11. Biểu diễn các câu sau thành các câu trong logic vị từ và chuyển chúng  
về dạng chuẩn:  
Tất cả con chó đều sủa về ban đêm.  
Hễ nhà ai có mèo thì nhà ngƣời đó đều không có chuột.  
Những ai khó ngủ thì đều không nuôi bất cứ con gì mà sủa về ban đêm.  
Bà Bình có mèo hoặc có chó.  
Chứng tỏ: Nếu bà Bình là ngƣời khó ngủ thì nhà bà ấy không có chuột.  
- Định nghĩa các hằng: BBinh (Bà Bình), T (là con vật Bà Bình nuôi)  
- Định nghĩa các vị từ:  
Cho(x) ="x là con chó"  
Sua_dem(y) ="y sủa về đêm"  
Meo (z) ="z là con mèo"  
co(x,y) ="Nhà ngƣời x có con vật y"  
Khongu(t) ="t khó ngủ"  
Chuot(w) ="w là con chuột"  
- Chuyển sang logic vị từ:  
+ Tất cả con chó đều sủa về ban đêm:  
x (Cho(x) Sua_dem(x))  
+ Hễ nhà ai có mèo thì nhà ngƣời đó đều không có chuột:  
xy z (Co(x,y) Meo(y) Chuot(z) Co(x,z))  
+ Những ai khó ngủ thì đều không nuôi bất cứ con gì mà sủa về ban đêm.  
xz (Kho_ngu(x) Co(x,z)  Sua_dem(z))  
+ Bà Bình có mèo hoặc có chó.  
(Co(BBinh,T)(Cho(T) Meo(T))  
+ Nếu bà Bình là ngƣời khó ngủ thì nhà bà ấy không có chuột:  
t (Khongu(BBinh) (Chuot(t)Co(BBinh,t))  
- Chuẩn hóa:  
Cho(x) Sua_dem(x)  
(1)  
(2)  
Co(x,y)  Meo(y) Chuot(z)  Co(x,z)  
Kho_ngu(x)  Co(x,z)  Sua_dem(z)  
Co(BBinh,T)  
(3)  
(4)  
(5)  
Cho(T) Meo(T)  
134  
Khongu(BBinh)Chuot(t)  Co(BBinh,t)  
- Chứng minh bằng phản chứng:  
Xét (Khongu(BBinh)Chuot(t)  Co(BBinh,t))  
Khongu(BBinh)Chuot(t) Co(BBinh,t)  
Khongu(BBinh)  
(6)  
(7)  
Chuot(t)  
(8)  
(9)  
Co(BBinh,t)  
(1), (5) với phép thế [x/T] ta có:  
Sua_dem(T)Meo(T)  
(10)  
(11)  
(12)  
(13)  
(3), (7) với phép thế [x/BBinh] ta có:  
Co(BBinh,z)  Sua_dem(z)  
(11), (9) với phép thế [z/t] ta có:  
Sua_dem(t)  
(12), (10) với phép thế [t/T] ta có:  
Meo(T)  
(2) thay [x/BBinh, y/T, z/t] ta có:  
Co(BBinh,T) Meo(T) Chuot(t)  Co(BBinh,t)  
(14), (8), (9), (4)  Meo(T)  
(15), (13) câu .  
(14)  
(15)  
Kết luận: Nếu bà Bình là ngƣời khó ngủ thì nhà bà ấy không có chuột.  
Ví dụ 4.12.  
Giả sử có các thông tin sau:  
1) Ông Ba nuôi một con chó D.  
2) hoặc ông Ba hoặc ông Am đã giết con mèo Bibi.  
chúng ta cũng biết rằng:  
3) Mọi ngƣời nuôi chó đều yêu quý động vật.  
4) Ai yêu quý động vật cũng không giết động vật.  
Và đƣơng nhiên là:  
5) Chó mèo đều là động vật.  
Để biểu diễn các tri thức trên trong logic vị từ, chúng ta cần sử dụng các hằng D,  
Ba, Am, Bibi, các vị từ:  
- dog(x): x là chó,  
- Cat(y): y là mèo,  
135  
- Rear(u, v): u nuôi v,  
- AnimalLover(u): u là ngƣời yêu quý động vật,  
- Kill(u, v): u giết v,  
- Animal(x): x là động vật.  
Sử dụng các hằng và các vị từ trên, chúng ta có thể chuyển các câu (1)-(5) thành các  
câu trong logic vị từ nhƣ sau:  
1. Dog(D) Rear(Ba, D)  
2. Cat(Bibi) (Kill(Ba, Bibi) Kill(Am, Bibi))  
3. x (y(Dog(y) Rear(x, y)) AnimalLover(x)))  
4. u (AnimalLover(u) (v (Animal(v) Kill(u, v)))  
5. z (Dog(z) Animal(z))  w(Cat(w) Animal(w)).  
- Chuẩn hoá các câu (3):  
x (y(Dog(y) Rear(x, y)) AnimalLover(x)))  
Dog(y) Rear(x, y) AnimalLover(x)  
Dog(y)  Rear(x, y) AnimalLover(x)  
- Chuẩn hoá các câu (4):  
u (AnimalLover(u) (v (Animal(v) Kill(u, v)))  
AnimalLover(u) ((Animal(v) Kill(u, v))  
 AnimalLover(u) (Animal(v) Kill(u, v))  
  AnimalLover(u)  Animal(v) Kill(u, v)  
- Chuẩn hoá các câu (5):  
z (Dog(z) Animal(z))  w(Cat(w) Animal(w))  
(Dog(z) Animal(z)) (Cat(w) Animal(w))  
CSTT gồm các câu tuyển sau khi chuẩn hóa:  
(1) Dog(D)  
(2) Rear(Ba, D)  
(3) Cat(Bibi)  
(4) Kill(Ba, Bibi) Kill(Am, Bibi)  
(5) Dog(y)  Rear(x, y) AnimalLover(x)  
(6) AnimalLover(u)  Animal(v)  Kill(u, v)  
(7) Dog(z) Animal(z)  
(8) Cat(w) Animal(w)  
136  
Bây giờ ta muốn hỏi CSTT gồm các câu (1)-(8): Ai đã giết Bibi? Điều đó có nghĩa  
là ta cần tìm các đối tƣợng ứng với biến t mà câu Kill(t, Bibi) là hệ quả logic của các  
câu(1)-(8).  
Trƣờng hợp 1: giả sử ông Am không giết Bibi.  
Bổ sung thêm câu:  
(9) Kill (Am, Bibi)  
Từ câu (4) và câu (9)   
(10) Kill (Ba, Bibi)  
Từ (6) và (10) với phép thế [u/Ba, v/Bibi], ta nhận đƣợc câu:  
(11) AnimalLover (Ba)  Animal (Bibi)  
Từ (3) và (8) với phép thế [w/Bibi], ta nhận đƣợc câu  
(12) Animal (Bibi)  
Từ (11) và (12) ta nhận đƣợc câu:  
(13) AnimalLover (Ba)  
Từ (1) và (5) với phép thế [y/D] ta nhận đƣợc câu:  
(14) Rear (x, D) AnimalLover(x)  
Từ câu (2) và (14) với phép thế [x/Ba] ta nhận đƣợc câu  
(15) AnimalLover(Ba)  
Từ câu (13) và (15) ta suy ra câu rỗng. Nhƣ vậy ông Am đã giết con mèo Bibi.  
Trƣờng hợp 2: giả sử ông Ba không giết Bibi.  
Bổ sung thêm câu: (9) Kill (Ba, Bibi).  
Tuy nhiên, lập luận tƣơng tự không suy ra đƣợc câu rỗng. Nhƣ vậy ông Ba không  
giết Bibi.  
4.7. Các chiến lƣợc phân giải  
Thủ tục tổng quát chứng minh bằng luật phân giải trong mục 4.6 chứa bƣớc 3.1  
(chọn ra hai câu A và B để xét xem chúng có phân giải đƣợc hay không và nếu A và B  
phân giải đƣợc thì tính giải thức của chúng). Vấn đề đặt ra là, ta cần có chiến lƣợc  
chọn các câu để phân giải chúng ở mỗi bƣớc sao cho thủ tục chứng minh đƣợc thực  
hiện hiệu quả. Các chiến lƣợc này đƣợc gọi là các chiến lược phân giải.  
Chúng ta có thể xem thủ tục chứng minh bằng luật phân giải nhƣ thủ tục tìm  
kiếm trên đồ thị phân giải. Đỉnh của đồ thị này là các câu, các cung đi từ các câu cha  
tới câu là phân giải thức của các câu cha.  
Ví d4.11:  
Giả sử chúng ta có một tập hợp các câu  
137  
C ={P(x)Q(f(x)), P(b) R(a, y), R (a, b), Q(z)}.  
Đồ thị phân giải trên tập câu đó đƣợc biểu diễn trong hình 4.1 dƣới đây, trong đó  
các cung đi từ trên xuống dƣới.  
Chúng ta đã biết rằng, từ một tập câu tuyển nếu ta tìn đƣợc một dãy các phân giải  
C
thức dẫn ti câu rỗng [] thì ta đã chứng minh đƣợc tập không thoả mãn đƣợc. Dãy các  
phân giải thức kết thúc bởi câu rỗng tạo thành một cây nhị phân, gốc là câu rỗng. Cây  
này sẽ đƣợc gọi cây chng minh. Chẳng hạn, Hình 4.2 biểu diễn một cây chứng  
minh tập câu trong dụ trên không thoả đƣợc. Đƣơng nhiên là, trong một đồ thị  
C
phân giải thể có nhiều cây chứng minh. Chẳng hạn, đồ thị phân giải trong Hình 4.1  
có 5 cây chứng minh, một trong các cây đó trong Hình 4.2  
Hình 4.1. Đồ thị phân giải  
Các chiến lƣợc phân giải hoặc là chiến lƣợc sinh ra các phân giải thức theo một hệ  
thống nào đó, hoặc là chiến lƣợc hạn chế việc sinh ra các phân giải thức nhằm nhanh  
chóng đạt tới câu rỗng. Một chiến lƣợc đƣợc xem là đầy đủ nếu đảm bảo sinh  
ra câu rỗng, nếu tập các câu cho trƣớc là không thoả đƣợc. Sau đây chúng ta sẽ  
C
trình bày một số chiến lƣợc phân giải quan trọng.  
138  
Tải về để xem bản đầy đủ
pdf 141 trang baolam 10/05/2022 5840
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Nhập môn Trí tuệ nhân tạo (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_nhap_mon_tri_tue_nhan_tao_phan_2.pdf