Mục tiêu cần đạt : Sau chương này, sinh viên có thể : ¾ Vận dụng giải thuật chuyển câu về dạng mệnh đề ¾ Vận dụng giải thuật Hợp giải để chứng minh các vấn đề được biểu diễn bằng ngôn n
Trang 1PHẦN IV
CÁC CHỦ ĐỀ NÂNG CAO
Phần này sẽ khảo sát hai lĩnh vực TTNT quan trọng: suy luận tự động và máy học; đây là các lĩnh vực mà sự phát triển của chúng ảnh hưởng sâu sắc đến định hướng của toàn thể ngành khoa học TTNT
Trong lời mở đầu của phần III, chúng ta đã thảo luận những ưu và khuyết điểm của các hệ giải quyết vấn đề (GQVĐ) theo phương pháp yếu Những vấn đề về các phương pháp yếu bao gồm tính phức tạp của không gian tìm kiếm và những khó khăn trong việc biểu diễn tri thức về thế giới bằng những biểu diễn tổng quát Mặc cho những thành công của các hệ chuyên gia và các hệ GQVĐ theo phương pháp mạnh tương tự, nhiều lĩnh vực vẫn đòi hỏi phải có các phương pháp tổng quát; mà thực chất, chiến lược điều khiển của bản thân các hệ chuyên gia đều dựa trên những phương pháp GQVĐ yếu tốt Nhiều nghiên cứu hứa hẹn về
các hệ GQVĐ theo phương pháp yếu tiếp tục được tiến hành bởi cộng đồng chứng minh định
lý tự động Những kỹ thuật này đã tìm thấy ứng dụng của mình trong nhiều lĩnh vực quan
trọng, trong đó có thiết kế và kiểm chứng mạch điện tích hợp, chứng minh tính đúng đắn của chương trình, và một cách gián tiếp, sự ra đời của ngôn ngữ PROLOG Trong chương 8, chúng ta sẽ xem xét các vấn đề xung quanh suy luận tự động
Chương 9 giới thiệu máy học, một trong những vấn đề nghiên cứu trung tâm của TTNT hiện nay Trong chương này, chúng ta xem xét 3 tiếp cận học khác nhau Tiếp cận thứ nhất là học dựa trên ký hiệu Bằng cách bắt đầu với một tập hợp các ký hiệu biểu diễn những thực thể và quan hệ trong một lĩnh vực vấn đề, các thuật toán học cố gắng suy ra những khái quát mới lạ,
có căn cứ và hữu ích mà có thể thể hiện được qua những ký hiệu
Ngược lại với tiếp cận ký hiệu, tiếp cận kết nối thì biểu diễn tri thức như là những hình mẫu của sự hoạt động trong mạng các đơn vị xử lý nhỏ, riêng lẻ Được thúc đẩy bởi kiến trúc não
bộ, các mạng liên hệ học bằng cách sửa đổi cấu trúc của chúng nhằm đáp ứng với dữ liệu luyện tập Thay vì tìm kiếm những khái quát có khả năng mà một ngôn ngữ biểu diễn ký hiệu có thể đem lại, các mô hình liên hệ nhận biết những hình mẫu bất biến trong dữ liệu và biểu diễn những mẫu này theo cấu trúc của chính bản thân chúng
Cũng giống như mạng kết nối được thúc đẩy bởi hệ nơron sinh học, các mô hình nổi trội của tiếp cận thứ ba được thúc đẩy bởi các phép tương tự di truyền và tiến hóa Các thuật toán di truyền bắt đầu bằng một quần thể những lời giải ứng cử viên Những lời giải ứng viên này sẽ được đánh giá theo khả năng giải quyết bài toán, chỉ có những lời giải phù hợp nhất mới sống sót và kết hợp với nhau để tạo ra thế hệ tiếp theo những lời giải có khả năng Do đó, những lời giải có tốt hơn sẽ tăng dần và nổi lên như thuyết Darwin về vũ trụ
Trang 2Chương VIII
SUY LUẬN TỰ ĐỘNG (AUTOMATIC
REASONING)
Nội dung chính : Trong chương này, chúng ta sẽ tìm hiểu về một thành quả của nhánh
nghiên cứu Suy luận tự động đã được giới thiệu ở chương I, đó là phương pháp chứng minh hợp giải (Resolution) hay còn gọi là thủ tục hợp giải
Mục tiêu cần đạt : Sau chương này, sinh viên có thể :
¾ Vận dụng giải thuật chuyển câu về dạng mệnh đề
¾ Vận dụng giải thuật Hợp giải để chứng minh các vấn đề được biểu diễn bằng ngôn ngữ logic mệnh đề
¾ Vận dụng giải thuật Hợp Giải để chứng minh các vấn đề được biểu diễn bằng ngôn ngữ logic vị từ
Kiến thức tiên quyết: Ngôn ngữ logic mệnh đề, ngôn ngữ logic vị từ, phương pháp chứng
minh dẫn xuất, phép đối sánh mẫu trong logic vị từ
Tài liệu tham khảo :
[1] Geogre F Luger – Artificial Intelligence, Structures and Strategies for Complex Problem
Solving 4 th Ed – Addison-Wesley Publishing Company, Inc – 2002 (trang 509 – trang 552) [2] Elaine Rich, Kevin Knight – Artificial Intelligence, 2 nd Ed McGraw Hill, Inc – 1991
(trang 131 – trang 169)
Trang 3I GIỚI THIỆU:
Như đã giới thiệu trong chương I, suy luận tự động có thể xem là nhánh nghiên cứu lâu đời nhất của AI, bắt nguồn từ Logic Theorist và General Problem Solver của Newell và Simon Sức hấp dẫn của suy luận tự động nằm trong tính chặt chẽ và tổng quát của logic Bởi vì logic là một hệ thống hình thức, nên ta có thể tự động hóa nó Rất nhiều vấn đề khác nhau có thể giải quyết được bằng cách biểu diễn các mô tả vấn đề và các thông tin liên quan ở dạng các tiên đề luận lý và xem bài toán như là các định lý cần chứng minh
Nổ lực của các nhà khoa học trong lĩnh vực này là tự động hóa quá trình chứng minh các định lý dựa vào các tiên đề cơ sở Mặc dù cho đến nay vẫn chưa đạt được mục tiêu ban đầu, nhưng nhánh nghiên cứu này đã tạo ra nhiều kết quả rất quan trọng trong việc hình thức hóa các giải thuật tìm kiếm và phát triển các ngôn ngữ biểu diễn hình thức như Đại số quan hệ
mà ta đã học ở chương II
Trong chương này ta sẽ tiếp tục khảo sát một trong những thành quả của lĩnh vực này, đó là phương pháp chứng minh Hợp Giải (resolution) Một ứng dụng quan trọng của hợp giải đó là làm nền tảng cho trình thông dịch của ngôn ngữ PROLOG đang được sử dụng hiện nay Hợp giải là một kỹ thuật chứng minh định lý được biểu diễn bằng đại số mệnh đề hay đại số
vị từ Hợp giải được phát triển vào giữa thập niên 60 do Robinson đề xướng Hợp giải sử dụng phản chứng để chứng minh một vấn đề Hay nói cách khác, để chứng minh một câu (nghĩa là chứng minh câu này đúng), hợp giải sẽ chỉ ra rằng phủ định của câu sẽ tạo ra một mâu thuẫn với các câu đã biết Tiếp cận này trái ngược với kỹ thuật mà chúng ta đã sử dụng
để chứng minh ở chương II, chương III, tức là sử dụng phép dẫn xuất để chứng minh
Trước khi đi vào phương pháp chứng minh hợp giải, chúng ta sẽ xem một ví dụ sử dụng Logic Vị Từ để biểu diễn tri thức và sử dụng phép dẫn xuất ở chương II để chứng minh
Thí dụ 8.1: Xét ví dụ với tập hợp các câu như sau:
1 Marcus was a man
2 Marcus was a Pompeian
3 All Pompeians were Romans
4 Caesar was a ruler
5 All Romans were either loyal to Caesar or hated him
6 Everyone is loyal to someone
7 People only try to assasinate rulers they are not loyal to
8 Marcus tried to assasinate Caesar
Hãy chứng minh ‘Was Marcus loyal to Caesar?’
Các câu trên có thể được biểu diễn dưới dạng các câu hay công thức dạng chuẩn (wff) trong ngôn ngữ Phép tính vị từ như sau:
1) man (marcus)
Trang 42) pompeian (marcus)
3) ∀X pompeian (X) → roman(X)
4) ruler (caesar)
5) ∀X roman(X) → loyalto (X, caesar) ∨ hate(X, caesar)
6) ∀X, ∃Y loyalto (X,Y)
7) ∀X, ∀Y person(X) ∧ ruler(Y) ∧ trytoassasinate(X) → ¬loyalto (X,Y)
8) trytoassasinate (marcus, caesar)
Chứng minh ¬loyalto(marcus, caesar)
Để chứng minh mục tiêu trên, chúng ta sử dụng luật suy diễn để biến đổi thành mục tiêu mới (hay nhiều mục tiêu con mới), và cứ tiếp tục cho đến khi không còn mục tiêu nào chưa thỏa mãn
Quá trình này có thể biểu diễn bằng một đồ thị AND/OR Ở đây, để đơn giản ta chỉ vẽ một đường duy nhất
Hình bên dưới minh họa một cách chứng minh cho mục tiêu trên:
¬loyalto (marcus, caesar)
↑ (câu 7, {marcus/X, ceasar/Y}) person (marcus) ∧ ruler (caesar) ∧ trytoassasinate (marcus, caesar)
↑ (câu 4) person (marcus) ∧ trytoassasinate (marcus, caesar)
↑ (câu 8)
person (marcus)
Đến đây ta gặp phải một vấn đề là mặc dù chúng ta biết Marcus là một người đàn ông (man), chúng ta không có cách nào kết luận Marcus là một người (person) Vì vậy, ta phải thêm vào
cơ sở tri thức một câu như sau:
9) ∀X man (X) ∨ woman (X) → person(X)
Với câu 9 vừa thêm vào, ta có thể chứng minh thành công mục tiêu trên
Từ chứng minh trên, chúng ta có nhận xét như sau:
− Thậm chí các kết luận rất đơn giản cũng đòi hỏi phải chứng minh qua nhiều bước
− Quá trình tạo ra một chứng minh có liên quan đến nhiều quá trình khác nhau như quá trình đối sánh, thay thế, áp dụng luật Modus Ponens Quá trình này sẽ phức tạp hơn nếu như các luật có nhiều từ hai mục ở vế phải hay vế trái gồm nhiều biểu thức phức tạp And hay Or với nhau
Từ những nhận xét này cho thấy việc xây dựng một chương trình có thể chứng minh được như con người là không dễ dàng chút nào Vì vậy, ta cần một phương pháp chứng minh đơn giản hơn Và Hợp Giải (resolution) ra đời như là một công cụ chứng minh hiện đại và mạnh
Trang 5mẽ hơn cho ngành suy luận tự động Sự đơn giản trong phép chứng minh của hợp giải xuất phát từ nguyên nhân: Thay vì suy luận trên các câu vị từ, hợp giải thao tác trên các câu đã được chuyển thành một dạng chuẩn trước khi bắt đầu quá trình chứng minh để làm giảm tính phức tạp của vấn đề Phần còn lại của chương này sẽ giới thiệu về thủ tục Hợp giải này
II THỦ TỤC HỢP GIẢI (RESOLUTION)
Thủ tục hợp giải chứng minh bằng phản chứng (refutation) Nghĩa là để chứng minh một câu, nó sẽ chứng minh rằng phủ định của câu đó sẽ tạo ra một mâu thuẫn với các câu đã cho Nhưng trước khi áp dụng thủ tục Robinson, các câu sẽ được chuyển về một dạng chuẩn mà
ta gọi là dạng mệnh đề (clause form)
II.1 Chuyển về dạng mệnh đề (Clause form):
II.1.1 Nhu cầu chuyển câu về dạng mệnh đề:
Giả sử chúng ta có một luật như sau: “Tất cả những người Roman biết Marcus thì hoặc là sẽ ghét Caesar hoặc nghĩ rằng bất cứ ai ghét người khác là điên rồ”, ta có thể biểu diễn tri thức này dưới dạng một công thức dạng chuẩn (wff) như sau:
∀X [roman (X) ∧ know (X,marcus) →
[hate(X,caesar) ∨ (∀Y (∃Z hate(Y,Z) → thinkcrazy(X,Y) ) )]] (1)
Để sử dụng công thức này trong một chứng minh đòi hỏi một quá trình đối sánh phức tạp Quá trình này sẽ dễ dàng hơn nếu công thức được biểu diễn ở dạng đơn giản hơn Công thức
sẽ dễ dàng thao tác hơn nếu chúng nó:
− Phẳng hơn, nghĩa là có ít thành phần được nhúng vào
− Các lượng tử biến (∀,∃) được tách khỏi phần còn lại của công thức để ta khỏi bận tâm xem xét chúng
Dạng chuẩn Conjunctive Normal Form (CNF) hội đủ cả hai tính chất này
CNF (Dạng chuẩn hội) : một biểu thức mệnh đề được xem là ở dạng chuẩn hội nếu nó là một chuỗi các mệnh đề kết nối nhau bằng quan hệ AND (∧) Mỗi mệnh đề có dạng một tuyển OR (∨) của các biến mệnh đề
Thí dụ 8.2: Các biểu thức sau ở dạng CNF :
• (¬a ∨ c) ∧ (¬a ∨¬b ∨ e) ∧ (c ∨ ¬d ∨ ¬e)
• (¬dog(X) ∨ animal(X)) (¬animal(Y) die(Y)) ∧ (dog(fido))
Công thức (1) được biểu diễn tương đương ở dạng CNF như sau:
¬ roman (X) ∨ ¬ know (X,Marcus) ∨
hate(X,Caesar) ∨ ¬ hate(Y,Z) ∨ thinkcrazy(X,Y)
Một vấn đề trong thực tế khi được biểu diễn trong hệ thống thường là ở dạng các câu đúng
cùng một lúc (vì vậy đó là hội của các câu), mỗi câu có thể được biểu diễn bằng một tuyển
Vì vậy, tri thức của bài toán có thể được biểu diễn như là hội của các tuyển
Trang 6Ta có sẵn một giải thuật để chuyển bất kỳ một câu trong Logic vị từ hay công thức dạng chuẩn (wff) về dạng CNF, mà vẫn không làm mất tính tổng quát nếu chúng ta sử dụng một thủ tục chứng minh như Hợp giải để thao tác trên các wff ở dạng này
Vì vậy, để có thể sử dụng thủ tục Robinson, ta phải chuyển toàn bộ tri thức bài toán về dạng
CNF hay nói khác hơn, chuyển từng câu về dạng mệnh đề (clauses)
* Định nghĩa mệnh đề:
Một mệnh đề được định nghĩa như là một wff ở dạng CNF nhưng không có sự hiện diện của phép hội (∧), hay nói khác hơn mỗi mệnh đề là tuyển (∨) của các biến mệnh đề (literal) Trong thí dụ 8.2 ở trên, dog(X), animal(X), là các biến mệnh đề
II.1.2 Giải thuật chuyển về dạng mệnh đề:
Bước 1 Loại bỏ dấu → sử dụng công thức tương đương a → b = ¬a ∨ b
Bước 2 Thu hẹp phạm vi của toán tử ¬ về cho từng mục (term) đơn, sử dụng các tương đương:
a ¬(¬p) = p
b Luật De Morgan:¬(a ∧ b) = ¬a ∨ ¬b hay ¬(a ∨ b) = ¬a ∧ ¬b
c ¬∀X p(X) = ∃X ¬p(X) hay ¬∃X p(X) = ∀X ¬p(X)
Bước 3 Chuẩn hóa các biến sao cho mỗi lượng tử chỉ kết nối với một biến duy nhất
Vì các biến chỉ đơn giản là các tên để ‘giữ chỗ’, nên quá trình này không làm ảnh hưởng đến chân trị của wff
Ví dụ: ∀X p(X) ∨ ∀X q(X) có thể chuyển thành ∀X p(X) ∨ ∀Y q(Y)
Bước 4 Dịch chuyển tất cả các lượng tử về bên trái của công thức nhưng vẫn giữ
nguyên thứ tự của chúng
Bước 5 Xóa bỏ các lượng tử tồn tại (∃) Chúng ta có thể loại bỏ lượng tử tồn tại bằng cách thay thế biến đó bằng một hàm sinh ra giá trị mong muốn Ta chỉ cần một hàm mới cho mỗi lần thay thế như vậy
Ví dụ: ∃Y president(Y) được chuyển thành president(S1)
Với S1 là một hàm tạo ra giá trị thỏa mãn vị từ president
Trong trường hợp lượng tử tồn tại xuất hiện bên trong phạm vi của lượng tử phổ biến, thì giá trị thỏa mãn vị từ này sẽ phải phụ thuộc vào giá trị của biến lượng tử tồn tại
Ví dụ: ∀X ∃Y father_of (Y,X)
được chuyển thành ∀X father_of (S2(X),X)
Các hàm (S1, S2) này được gọi là hàm Skolem Đôi khi các hàm Skolem không
có đối số được gọi là hằng Skolem như S2
Bước 6 Bỏ đi các tiền tố (lượng tử phổ biến)
Bước 7 Chuyển công thức về dạng hội của các tuyển Sử dụng luật phân phối
(a ∧ b) ∨ c = (a ∨ c) ∧ (b ∨ c) hay (a ∨ b) ∧ c = (a ∧ c) ∨ (b ∧ c)
Ví dụ:
(winter ∧ wearingboots) ∨ (summer ∧ wearingsandals)
Ö [ (winter ∨ (summer ∧ wearingsandals) ]
∧ [ wearingboots ∨ (summer ∧ wearingsandals)]
Ö (winter ∨ summer) ∧
Trang 7(winter ∨ wearingsandals) ∧ (wearingboots ∨ summer) ∧ (wearingboots ∨ wearingsandals)
Bước 8 Tạo ra các mệnh đề tách biệt tương ứng với từng toán hạng tuyển trên
Ví dụ ở bước 7: từ kết quả ở bước 7, ta có thể tách thành 4 mệnh đề
Bước 9 Chuẩn hoá các biến trong tập hợp các mệnh đề vừa tạo ở bước 8, nghĩa là đặt
lại tên cho các biến sao cho không có hai mệnh đề có cùng tên biến
Câu hỏi :
Hãy skolemize các biểu thức sau:
1 ∃ X dog(X)
2 (∀X) (∃Y) mother (X,Y)
3 (∀X) (∀Y) (∃Z) (∀W) ( foo(X, Y, Z, W))
Thí dụ 8.3: Áp dụng giải thuật trên, hãy chuyển câu vị từ ở ví dụ Thí dụ 8.1 về dạng mệnh đề
:
∀X [roman (X) ∧ know (X,marcus) →
[hate(X,caesar) ∨ (∀Y (∃Z hate(Y,Z) → thinkcrazy(X,Y) ) )]]
1 Loại bỏ dấu →
∀X [ ¬ (roman (X) ∧ know (X,marcus)) ∨
[hate(X,caesar) ∨ (∀Y ( ¬(∃Z hate(Y,Z)) ∨ thinkcrazy(X,Y)) )]]
2 Đưa ¬ vào trong
∀X [(¬roman (X) ∨ ¬know (X,marcus)) ∨
[hate(X,caesar) ∨ (∀Y (∀Z (¬hate(Y,Z) ) ∨ thinkcrazy(X,Y)))]]
3 Chuẩn hoá các biến 9
4 Dịch chuyển tất cả các lượng tử về bên trái:
∀X ∀Y ∀Z [(¬roman (X) ∨ ¬know (X,marcus) ) ∨
[hate(X,caesar) ∨ (¬hate(Y,Z) ∨ thinkcrazy(X,Y))]]
5 Xoá bỏ các lượng tử tồn tại 9
6 Bỏ đi lượng tử phổ biến
[(¬roman (X) ∨ ¬know (X,marcus) ) ∨
[hate(X,caesar) ∨ (¬hate(Y,Z) ∨ thinkcrazy(X,Y))]]
7 Chuyển thành hội của các tuyển: vì trong công thức trên không còn toán tử And, nên
ở đây ta chỉ đơn giản là bỏ đi các dấu ngoặc là ta có được công thức ở dạng mệnh đề như sau:
¬roman (X) ∨ ¬know (X,marcus) ∨
hate(X,caesar) ∨ ¬hate(Y,Z) ∨ thinkcrazy(X,Y)
Câu hỏi :
Đưa câu vị từ sau về dạng mệnh đề:
∀X ( a(X)→ b(X) ) ↔ ∃X q(X)
Trang 8II.2 Cơ sở của Hợp giải (Resolution):
Thủ tục hợp giải là một quá trình lặp đơn giản: ở mỗi lần lặp, hai mệnh đề, gọi là mệnh đề
cha, được so sánh (hay giải quyết - resolved), để tạo ra mệnh đề kết quả, trong đó những biến
mệnh đề mâu thuẫn nhau sẽ bị loại bỏ Để hiểu lý do loại bỏ hai biến mệnh đề mâu thuẫn này, ta xét một trường hợp sau
Giả sử trong hệ thống có hai mệnh đề (nghĩa là cùng lúc cả hai mệnh đề đều phải đúng): winter ∨ summer và ¬winter ∨ cold
Tại bất kỳ thời điểm nào, chỉ có một trong hai biến mệnh đề winter và ¬winter là đúng Nếu winter đúng, thì buộc cold phải đúng Còn nếu ¬winter đúng thì buộc summer phải
đúng Vì vậy, từ hai mệnh đề trên có thể dẫn xuất thành:
summer ∨ cold
Đây chính là dẫn xuất mà hợp giải sẽ sử dụng Hợp giải sẽ thao tác trên hai mệnh đề có chứa
cùng biến mệnh đề (trong ví dụ trên là winter) Biến mệnh đề này phải ở dạng khẳng định
trong một mệnh đề, và ở dạng phủ định trong mệnh đề kia Kết quả đạt được bằng cách kết hợp hai mệnh đề cha trừ đi biến mệnh đề chung đó
Nếu mệnh đề kết quả là rỗng thì xem như đã tìm được sự mâu thuẫn (contradiction), nghĩa là
mục tiêu đã được chứng minh
Trong hai phần kế tiếp, ta sẽ xét giải thuật hợp giải sử dụng trong hai trường hợp, đó là trường hợp vấn đề được biểu diễn bằng ngôn ngữ logic mệnh đề và trường hợp vấn đề được biểu diễn bằng ngôn ngữ logic vị từ
II.3 Giải thuật hợp giải dùng cho Logic mệnh đề:
Cho trước: Tập hợp các tiên đề (axioms) F viết dưới dạng các câu trong phép tính mệnh đề Yêu cầu: Chứng minh P
Trang 9* Giải thuật Hợp giải dùng cho Phép tính mệnh đề (Propositional Logic):
Bước 1 Chuyển tất cả các câu trong F về dạng mệnh đề (clause form)
Bước 2 Lấy phủ định P và chuyển về dạng mệnh đề Thêm nó vào tập các mệnh đề
vừa tạo ở bước 1
Bước 3 Lặp lại cho đến khi tìm thấy sự mâu thuẫn hoặc không thể tiếp tục:
a Chọn hai mệnh đề Gọi là các mệnh đề cha
b Hợp giải chúng Mệnh đề kết quả là tuyển của tất cả các biến mệnh đề trong
các mệnh đề cha trừ: nếu có bất kỳ các cặp biến mệnh đề L và ¬L, một nằm trong mệnh đề cha này, một nằm trong mệnh đề cha kia, thì chọn một cặp và xóa cả hai L và ¬L ra khỏi mệnh đề kết quả
c Nếu mệnh đề kết quả là rỗng, thì xem như đã tìm được sự mâu thuẫn
Nếu không, thêm mệnh đề kết quả đó vào trong tập hợp các mệnh đề hiện có
Thí dụ 8.4:
Các câu cho trước Chuyển về dạng mệnh đề
P P (1)
T T (5)
Hãy chứng minh R Các bước thực hiện của thủ tục hợp giải được biểu diễn trong đồ thị hợp
giải (hay cây hợp giải) dưới đây:
¬T ∨ Q ¬Q
¬T T
II.4 Giải thuật hợp giải dùng cho Logic vị từ
Trong trường hợp biểu diễn bằng Logic mệnh đề, việc xác định hai biến mệnh đề mâu thuẫn
(không thể đúng cùng lúc) là rất dễ dàng, chỉ cần đơn giản tìm L và ¬L Trong khi biểu diễn
bằng Logic vị từ, quá trình đối sánh này phức tạp hơn vì cần phải xem xét các đối số của vị
từ Chẳng hạn như, man(John) và ¬man(John) thì mâu thuẫn, còn man(John) và ¬man(Spot)
thì không Vì vậy, để xác định các cặp mâu thuẫn, ta cần một thủ tục để so sánh các biến
mệnh đề và tìm xem liệu có tồn tại tập phép thế nào làm cho chúng giống nhau Đó chính là
giải thuật đồng nhất (unification) mà ta đã thảo luận ở chương II
Cho trước: Tập hợp các tiên đề F viết dưới dạng các câu trong phép tính vị từ
Yêu cầu: Chứng minh P
Trang 10* Giải thuật Hợp giải dùng cho Phép tính vị từ (Predicate Logic):
Bước 1 Chuyển tất cả các câu trong tập F về dạng mệnh đề (clause form)
Bước 2 Lấy phủ định của P và chuyển về dạng mệnh đề Thêm nó vào tập các mệnh
đề vừa tạo ở bước 1
Bước 3 Lặp lại cho đến khi tìm thấy sự mâu thuẫn hay không thể tiếp tục:
a Chọn hai mệnh đề Gọi là các mệnh đề cha
b Hợp giải chúng Mệnh đề kết quả là tuyển của tất cả các biến mệnh đề trong các mệnh đề cha với các phép thế phù hợp và trừ đi: nếu có một cặp biến mệnh đề T1 và ¬T2, sao cho T1 nằm trong mệnh đề cha này, còn ¬T2 nằm trong mệnh đề cha kia, và nếu T1 và T2 là hai biến mệnh đề có thể đồng nhất
(unifiable), thì xóa cả hai T1 và ¬T2 ra khỏi mệnh đề kết quả Ta nói T1 và T2 là các biến mệnh đề bù nhau (complementary literals) Sử dụng tập phép
thế trả ra bởi giải thuật đồng nhất để tạo ra mệnh đề kết quả Nếu có nhiều hơn một cặp biến mệnh đề bù nhau thì chỉ xóa một cặp
c Nếu mệnh đề kết quả là rỗng, thì xem như đã tìm được sự mâu thuẫn
d Nếu không, thêm mệnh đề kết quả đó vào trong tập hợp các mệnh đề hiện có Việc lựa chọn mệnh đề nào để đưa vào hợp giải trước sẽ ảnh hưởng đến quá trình chứng minh cho mục tiêu Vì vậy, để tăng tốc độ cho quá trình chứng minh này, một số chiến lược được đưa ra hỗ trợ cho việc lựa chọn này:
− Chỉ hợp giải những cặp mệnh đề có chứa các biến mệnh đề bù nhau
− Loại bỏ các mệnh đề ngay khi chúng vừa được tạo ra trong quá trình hợp giải Có hai loại mệnh đề có thể loại bỏ được là: mệnh đề luôn luôn đúng (tautology), và mệnh đề được tạo thành từ các mệnh đề khác (ví dụ P ∨ Q được tạo thành từ P)
− Mỗi khi có thể, hãy hợp giải với một trong những mệnh đề là một phần của câu mà ta cần phản chứng hoặc với một mệnh đề được sinh ra do hợp giải với mệnh đề như
vậy Chiến lược này gọi là set-of-support Nó phát sinh từ trực giác cho rằng sự mâu
thuẫn mà chúng ta tìm kiếm phải liên quan đến câu mà ta đang muốn chứng minh
− Mỗi khi có thể, hợp giải với mệnh đề chỉ có một biến mệnh đề Hợp giải này sẽ tạo ra mệnh đề mới với ít biến mệnh đề hơn các mệnh đề cha của nó, và vì vậy có thể nó sẽ
gần đến mục tiêu là một mệnh rỗng hơn Chiến lược này gọi là unit-preference Thí dụ 8.5: Các câu trong thí dụ 8.1 được chuyển về dạng mệnh đề như sau:
1 man (marcus)
2 pompeian (marcus)
3 ¬pompeian (X1) ∨ Roman (X1)
4 ruler (caesar)
5 ¬roman (X2) ∨ loyalto (X2, caesar) ∨ hate (X2, caesar)
6 loyato (X3, fl(X3))