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

Đồ án tốt nghiệp Suy diễn tự động-Hệ thống suy diễn SLR

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 (981.72 KB, 64 trang )

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Thị Thúy Mai
Điện thoại liên lạc: 01682 957 498 Email:
Lớp: Hệ thống thông tin B Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Hệ thống thông tin - Khoa Công nghệ thông
tin – Đại học Bách Khoa Hà Nội.
Thời gian làm ĐATN: Từ ngày 23/02/2009 đến 29/05/2009
2. Mục đích nội dung của ĐATN: Nghiên cứu hai phương pháp suy diễn tự động phổ biến
là: phương pháp SAT Solving với thủ tục DPLL và phương pháp Theorem Proving với thủ
tục hợp giải Resolution. Kết hợp hai phương pháp đó trong một phương pháp đúng đắn,
đầy đủ và hiệu quả hơn là SLR-Satisfiability with Lazy Resolution. Cuối cùng là phần cài
đặt phương pháp đó.
3. Các nhiệm vụ cụ thể của ĐATN
 Nghiên cứu hai phương pháp suy diễn tự động: phương pháp SAT Solving với thủ
tục DPLL và phương pháp Theorem Proving với thủ tục hợp giải Resolution
 Đọc code và chạy thử ví dụ của hệ thống DPLL
 Kết hợp MiniSat + Spass
 Tìm ví dụ và kiểm thử
 So sánh với các hệ thống đã có (iProver, Darwin, Spass,…)
4. Lời cam đoan của sinh viên:
Tôi – Nguyễn Thị Thúy Mai - cam kết ĐATN là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của TS. Trần Đức Khánh.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày 27 tháng 5 năm 2009
Tác giả ĐATN
Nguyễn Thị Thúy Mai
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày tháng năm 2009


Giáo viên hướng dẫn
TS. Trần Đức Khánh
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Lời cảm ơn
Để có ngày hoàn thành đồ án tốt nghiệp này, lời đầu tiên em xin chân thành cảm
ơn các thầy, cô và cán bộ giảng dạy tại trường Đại học Bách khoa Hà Nội, các thầy
cô trong khoa Công nghệ thông tin và bộ môn Hệ thống thông tin đã tận tâm dạy dỗ
chúng em trong suốt những năm học vừa qua.
Em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, TS. Trần Đức Khánh, người
đã tận tình chỉ bảo, giúp đỡ, tạo điều kiện cho em trong suốt quá trình thực tập cũng
như giai đoạn làm đồ án tốt nghiệp, đồng thời cho em những lời khuyên quý báu để
hoàn thành đồ án này.
Em xin chân thành cảm ơn anh Tạ Quang Trung đã cùng em nghiên cứu và thực
hiện phần chương trình của đồ án.
Đồng thời, tôi cũng xin cảm ơn những người bạn đã luôn ở bên tôi, động viên,
giúp đỡ tôi rất nhiều trong thời gian qua.
Cuối cùng, con muốn gửi lời biết ơn tới gia đình. Con xin cảm ơn bố mẹ đã tạo
điều kiện cho con ăn học. Bố mẹ luôn là điểm tựa vững chắc cho con trong mọi
công việc.


Hà Nội, tháng 5 năm 2010
Sinh viên: Nguyễn Thị Thúy Mai
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Đồ án tốt nghiệp này nghiên cứu phương pháp suy diễn tự động trên tập các mệnh đề
logic. Đây là phương pháp được ứng dụng rộng rãi trong thực tế, cụ thể để: kiểm tra độ tin
cậy và an toàn của phần cứng, phần mềm cũng như các giao thức mã hóa,….
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B i
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Ban đầu, đồ án tìm hiểu lý thuyết suy diễn tự động nói chung, sau đó đi sâu vào hai

phương pháp suy diễn tự động phổ biến nhất hiện nay là: phương pháp SAT Solving với
thủ tục DPLL và phương pháp Theorem Proving với thủ tục hợp giải Resolution. Hai
phương pháp này có những ưu và nhược điểm của nó như : DPLL chỉ thực hiện trên các
tập mệnh đề không chứa biến, trong khi hợp giải Resolution làm việc hiệu quả trên tập
mệnh đề chứa biến. Từ đó, nảy sinh ý tưởng kết hợp hai phương pháp trên trong hệ thống
mới một cách hiệu quả. Đó chính là hệ thống SLR, Satisfiability with Lazy Resolution.
Trong đồ án sẽ miêu tả chi tiết về phương pháp này. Phần cài đặt cụ thể cho SLR sử dụng
chương trình MiniSat cho bên SAT Solving và chương trình SPASS bên Theorem Proving.
Cuối cùng, là phần chạy thử trên một số ví dụ và so sánh với kết quả của các phương pháp
trước đó.
Trong phạm vi đồ án, việc cài đặt mới chỉ dừng lại ở phiên bản đầu, dù có những thử
nghiệm khả quan nhưng cũng chưa thật sự rõ rệt như chúng tôi mong muốn. Hi vọng trong
lai, chúng tôi hướng tới nâng cấp phiên bản SLR đầu và vận dụng nó cho việc phát triển
lên hệ thống SMELS-Satisfiability Modulo Equality with Lazy Sperposition- hệ thống suy
diễn tự động trên logic vị từ loại I chứa dấu bằng.
ABSTRACT OF THESIS
The thesis studies on the method of “automated Resoning on set of first-order logic
clauses”. It is one of wide application in reality, namely : to check the realibility and safety
of hardware, software as well as encryption protocols,….
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B ii
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
In general, the thesis studies on automated resoning theory then goes in more detail in
two most popular automated resoning : the SAT Solving method with DPLL procedure and
the Theorem Proving with Resolution procedure. Two methods have their own advantages
and disadvantages such as: DPLL only implements on set of ground clauses, while
Resolution works effectively on set of nonground clauses. Accordingly, it inspires the idea
of combining two above methods on a new system. It is SLR system, Satisfiability with
Lazy Resolution system. And the thesis shall describe this method in detail. The detail
installation of SLR using the program of Minisat for SAT solving and SPASS of Theorem
Proving. Finally, the thesis ends with the trial run on some samples and comparison with

previous methods.
In the scope of the thesis, the new installation is only installed with new version.
Despite positive result, it is not clear as we has expected. In the future, we look forward to
upgrading first version of SLR and applying it in development of the system of SMELS-
Satisfiability Modulo Equality with Lazy Sperposition.
MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
Lời cảm ơn i
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP i
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B iii
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
ABSTRACT OF THESIS ii
Lời nói đầu 1
Chương 1. Đặt vấn đề 2
Chương 2: Hai phương pháp suy diễn tự động phổ biến 5
Chương 3: SLR 30
Chương 4: Xây dựng chương trình SLR 37
Chương 5: Kết luận 55
TÀI LIỆU THAM KHẢO: 56
DANH MỤC CÁC BẢNG
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B iv
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Bảng 4.1: Bảng những cấu trúc dữ liệu chinh trong MiniSat 39
Bảng 4.2: Bảng cấu trúc dữ liệu của term sau khi điều chỉnh 45
Bảng 4.3: Bảng điều chỉnh luật suy diễn của Spass 47
Bảng 4.4: Bảng kết quả thử nghiệm của SLR và một số phương pháp suy diễn
tự động trên các ví dụ EPR của ATP 53
DANH MỤC CÁC HÌNH
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B v
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR

THUẬT NGỮ, CÁC TỪ VIẾT TẮT VÀ CÁC KÍ HIỆU
Thuật ngữ Giải thích
SMT viết tắt của Satisfiablity Modulo Theories – là tên gọi chung của
các phương pháp suy diễn tự động trên tập mệnh đề không chứa
biến. Hướng suy diễn đi tìm mô hình của tập mệnh đề.
SMELS viết tắt của Satisfiability Modulo Equality with Lazy
Sperposition, là phương pháp suy diễn tự động trên một công
thức logic vị từ loại I chứa thuyết dấu bằng, có được từ sự kết
hợp hai phương pháp là SAT Solving và Theorem Proving.
SLR viết tắt của Satisfiability with Lazy Resolution – là trường hợp
riêng của SMELS. SLR suy diễn trên công thức logic vị từ loại I
không chứa thuyết dấu bằng.
ATPs viết tắt của Automated Theorem Provers, là tên gọi chung của
các phương pháp suy diễn tự động trên tập mệnh đề chứa biến.
Hướng suy diễn là đi chứng minh tập mệnh đề có thỏa mãn hay
không.
DPLL viết tắt của Davis-Putnam-Logemann-Loveland, là phương pháp
suy diễn tự động điển hình bên SMT.
SAT viết tắt của Satisfiability – Tính thỏa mãn của một công thức.
UNSAT viết tắt của UnSatisfiability – Tính không thỏa mãn của một
công thức.
3
là kí hiệu phủ định của 3.
bt viết tắt của bài toán, nghĩa là bài toán logic
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B vi
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Lời nói đầu
Ngày nay, logic hình thức và suy diễn tự động được ứng dụng rộng rãi trong
thực tế, cụ thể như: để kiểm tra độ tin cậy và an toàn của phần cứng, phần mềm
cũng như của các giao thức mã hóa,….

Việc chứng minh tính thỏa mãn của một công thức đi cùng với một miền lý
thuyết đã trở thành một công cụ chủ yếu trong kiểm định. Chúng đều được gọi là
Satisfiablity Modulo Theories (SMT) solver. SMT chỉ thực hiện trên các công thức
logic vị từ loại I không chứa biến ví dụ như [6,7,5] hay phương pháp chứng minh
định lý Simplify [8] và là những phương pháp không đầy đủ. Mặt khác có những
phương pháp không phải luôn luôn cho kết luận về tính thỏa mãn nhưng lại đầy đủ
được gọi chung là Automated Theorem Provers (ATPs) như : Spass [10], Vampire
[9] hay E [6]. Tuy nhiên, các phương pháp ATPs không thể nhanh được bằng các
phương pháp SAT Solving. Chính những đó đã dẫn đến hướng nghiên cứu kết hợp
hai phương pháp trên trong một hệ thống hiệu quả như : SLR, smels,…. Trong
phạm vi đồ án, em xin trình bày những nghiên cứu về SLR, cũng như phần cài đặt
và chạy thử của nó so với một số phương pháp khác.
Nội dung chủ yếu của đồ án được tóm tắt trong năm chương:
 Chương 1 : Đặt vấn đề. Trình bày tổng quan về phương pháp suy diễn tự
động trên tập các mệnh đề cùng những hiện trạng của nó ngày nay. Từ đó
đề xuất ra mục tiêu nghiên cứu của đề tài.
 Chương 2 : Hai phương pháp suy diễn tự động phổ biến. Trình bày về
hai phương pháp suy diễn tự động là: thủ tục DPLL trên logic mệnh đề
không chứa biến và hợp giải Robinson trên logic vị từ loại I.
 Chương 3 : SLR, giới thiệu hệ thống suy diễn tự động dựa trên sự kết
hợp của hai phương phương truyền thống: phương pháp SAT Solving với
thủ tục DPLL và phương pháp Theorem Proving với thủ tục hợp giải
Resolution.
 Chương 4 : Xây dựng chương trình SLR, trình bày việc xây dựng
chương trình SLR từ việc kết hợp đọc hiểu code MiniSat và Spass với
những nghiên cứu về SLR ở chương 3.
 Chương 5 : Kết luận. Đưa ra kết quả đã đạt được trong quá trình thực
hiện đồ án, các khó khăn hạn chế gặp phải và định hướng phát triển trong
tương lai.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 1

Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Chương 1. Đặt vấn đề
Chương này trình bày tổng quan về phương pháp suy diễn tự động trên tập các
mệnh đề cùng những hiện trạng của nó ngày nay. Từ đó đề xuất ra mục tiêu nghiên
cứu của đề tài.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 2
1.1 Suy diễn tự động trên tập các mệnh đề
1.2 Những phương pháp suy diễn tự động phổ biến hiện nay
1.3 Mục tiêu nghiên cứu của đề tài
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
1.1 Suy diễn tự động trên tập các mệnh đề
Thông thường để giải quyết một bài toán thực tế ta tiến hành lần lượt các bước
sau :
 Đặc tả hệ thống bằng ngôn ngữ logic.
 Biểu diễn vấn đề cần kiểm tra bằng một công thức logic (công thức logic
được chứng minh là đúng đồng nghĩa với hệ thống được đặc tả đạt yêu cầu).
 Sử dụng các hệ thống chứng minh tự động hoặc bán tự động để chứng minh
các công thức logic.
Trong rất nhiều ứng dụng, chứng minh một vấn đề nào đó có thể qui về bài toán
chứng minh định lý trên một miền tính toán. Miền tính toán còn được gọi theo thuật
ngữ chuyên ngành là lý thuyết (theory) như : lý thuyết về chuỗi, mảng, về bản ghi,
hay lý thuyết về số học tuyến tính, Vấn đề đặt ra là làm thế nào để xây dựng các
giải thuật để giải quyết bài toán nêu trên cho một lý thuyết nào đó. Đây là bài toán
không thể giải quyết trong trường hợp tổng quát (undecidable problem), tuy nhiên
đối với một số lý thuyết và một số loại công thức, bài toán này có thể được giải
quyết bằng giải thuật. Các giải thuật này có thể cài đặt được cho máy để góp phần
hỗ trợ quyết định, để đánh giá,…. Đây chính là nhiệm vụ của bài toán suy diễn tự
động.
Ngày nay, thế giới vẫn liên tục bị ấn tượng bởi những ứng dụng của suy diễn tự
động trong thực tiễn, đi đầu là Mirosoft. Họ tập hợp những chuyên gia hàng đầu về

suy diễn tự động, đầu tư rất nhiều vào việc nghiên cứu,… từ đó mà tạo ra những sản
phẩm tuyệt vời góp phần to lớn vào công đoạn kiểm định phần mềm, phần cứng.
1.2 Những phương pháp suy diễn tự động phổ biến hiện nay
Các biểu thức logic của một bài toán sau khi được mô hình hóa thuộc một trong
2 dạng sau :
 Dạng 1 : Logic mệnh đề - biểu thức logic không chứa biến hay còn gọi là
ground clause
 Dạng 2 : Logic vị từ - biểu thức logic chứa biến hay còn gọi là nongound
clause
Các phương pháp suy diễn tự động phổ biến hiện nay bao gồm :
SAT Solving (thủ tục DPLL):
+ Hiệu quả trong việc xác định tính SAT của mệnh đề dạng ground clause.
– Không đầy đủ đối với các mệnh đề dạng non-ground clause.
Theorem Proving (Resolution - hợp giải):
+ Đầy đủ, hiệu quả với các mệnh đề dạng non-ground clause.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 3
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
– Không được hiệu quả khi phải xử lý nhiều mệnh đề dạng ground clause
Thực tế cho thấy, rất nhiều bài toán sau khi được mô hình hóa thì chứa đa số các
biểu thức ở dạng ground, hơn nữa chủ yếu là chứa thuyết về dấu bằng. Từ đó, nảy
sinh ý tưởng kết hợp 2 phương pháp trên trong một hệ thống mới một cách hiệu quả.
Hệ thống này sẽ giải quyết tốt lớp bài toán trên. Có rất nhiều nhóm đã nghiên cứu và
thành công theo hướng này tạo ra những hệ thống như: iProver, Darwin,…và hệ
Satisfiability Modulo Equality with Lazy Superposition – SMELS, sản phẩm kết
hợp tốt nhất giữa phương pháp ATPs với phương pháp SMT: một hệ thống đầy đủ
trên tập mệnh đề chứa biến và hiệu quả với những vấn đề chứa nhiều ground. Một
trường hợp riêng của SMELS là phương pháp Satisfiability with Lazy Resolution-
SLR, có cách thực hiện tương tự như SMELS, chỉ khác ở chỗ đối tượng của nó là
lớp bài toán không chứa thuyết về dấu bằng. Chính vì vậy SLR là một khởi đầu tốt
để hiểu về hệ thống tổng quát SMELS.

Tuy khái niệm suy diễn tự động cũng như việc nghiên cứu và áp dụng nó đã xuất
hiện từ khá lâu, nhưng phải làm sao để nó làm việc hiệu quả trên nhiều miền tính
toán vẫn là một bài toán dang dở. Nằm trong xu hướng đó, hướng nghiên cứu kết
hợp hai phương pháp trên [4] mới dừng lại trên lý thuyết, cũng có một số bản cài đặt
của Microsoft tuy nhiên không được cung cấp mã nguồn,…. Vì lý do đó trong đồ án
của mình, em mạnh dạn giới thiệu hướng tiếp cận này.
1.3 Mục tiêu nghiên cứu của đề tài
Đồ án sẽ tập trung nghiên cứu hai phương pháp suy diễn tự động phổ biến hiện
nay đó là : thủ tục DPLL và thủ tục hợp giải Resolution. Những nội dung được trình
bày trong đồ án được em đọc, hiểu và tóm tắt lại từ [1], [2], [3] và [11]. Đây là
những kiến thức cơ sở về suy diễn tự động, từ đó có thể rút ra những điểm yếu cũng
như những điểm mạnh của chúng.
Để tiếp cận với hướng kết hợp hai phương pháp đó trong một hệ thống hiệu quả
cho lớp bài toán nhiều mệnh đề ground, trong phạm vi đồ án, em sẽ trình bày về hệ
thống SLR. Cuối cùng là phần phân tích cài đặt và chạy thử của phương pháp SLR.
Do thời gian nghiên cứu có hạn nên việc cài đặt mới chỉ dừng lại ở phiên bản
đầu. Việc cải tiến chương trình sẽ là nhiệm vụ trong tương lai.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 4
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Chương 2: Hai phương pháp suy diễn tự
động phổ biến
Nội dung của chương này trình bày về hai phương pháp suy diễn tự động phổ biến
là thủ tục DPLL trên logic mệnh đề không chứa biến và hợp giải Robinson trên
logic vị từ loại I. Đây là những lý thuyết nền tảng cho suy diễn tự động và cũng là
hai nửa của hệ SLR.
1.4 Thủ tục DPLL để giải quyết vấn đề SAT (Satisfiability-tính thỏa
mãn)
Bài toán SAT (tính thỏa mãn), tạm hiểu là bài toán đi tìm miền thỏa mãn
(model) của 1 công thức (fomula). Thủ tục DPLL là một trong các phương pháp giải
quyết bài toán SAT.

Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 5
2.1 Thủ tục DPLL để giải quyết vấn đề SAT
2.2 Hợp giải Robinson với logic vị từ loại I
2.3 Tổng kết chương 2
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Để bắt đầu, chúng ta sẽ đi tìm hiểu thủ tục DPLL – 1 thủ tục dựa trên luật :
DPLL có những đặc điểm là đúng đắn (soundness), đầy đủ (completeness) và kết
thúc (termination). Các DPLL cải tiến sau này có khả năng backjumping và học
mệnh đề (clause learning) rất hiệu quả.
1.4.1 Tổng quan về SAT Solving
Việc quyết định tính thỏa mãn của 1 mệnh đề (SAT) không chỉ là rất quan trọng
trong lý thuyết (giải quyết bài toán P & NP) mà còn là cơ sở để giải quyết rất nhiều
vấn đề trong thực tế như việc thiết kế tự động hóa thiết bị điện tử, kiểm định, trí
thông minh nhân tạo (AI) và các hoạt động nghiên cứu.
Ngày nay có rất nhiều phương án SAT (như Moskewicz – 2001; Goldberg and
Novikov – 2002; Eén và Soensson – 2003; Ryan – 2004) phân biệt dựa trên sự khác
nhau của các thủ tục DPLL (Davis and Putnam – 1960 ; Davis – 1962). Thuật toán
được chính thức đưa vào làm việc trong GRASP, SATO và hệ thống Relsat, những
cải tiến kinh ngạc về hiệu năng của SAT dựa trên DPLL là :
 Kỹ thuật thực hiện được cải tiến ngày một tốt hơn, ví dụ như duyệt literal 2
lần trong luật unit propagation
 Thủ tục DPLL cơ bản hướng đến việc giảm không gian tìm kiếm như kỹ
thuật backjumping (1 dạng quay lui không theo thứ tự), hay học bổ đề tránh
xung đột, restarts giảm thời gian tìm kiếm vô ích.
Những thành tựu này rất quan trọng trong việc quyết đinh tính thỏa mãn của
những vấn đề thực tế với hàng ngàn biến và hàng triệu mệnh đề.
Sau đây, chúng ta giới thiệu rất gắn gọn về lý thuyết DPLL, miêu tả cách giải
quyết vấn đề nhờ các tập luật của DPLL, những đặc điểm nổi bật của các luật đơn
giản và các luật chiến lược. Bằng cách giới thiệu về cách tiến hành cũng như
heuristics của nó, chúng ta sẽ dễ dàng hiểu được khái niệm về DPLL cũng như tính

đúng đắn, đầy đủ và kết thúc của nó. Đây cũng là cơ sở cho những nghiên cứu SAT
trong lý thuyết (SAT Modulo Theories – SMT).
1.4.2 Thủ tục DPLL
Trong phần này chúng ta sẽ giới thiệu chính thức lý thuyết DPLL qua các và các
hệ thống biến đổi. Sau đó là một số điểm nổi trổi thú vị về DPLL, chứng minh tính
chính xác của nó, đồng thời cho thấy nhiều cách DPLL tiến hành ứng với từng loại
tham số.
1.4.2.1 Khái niệm công thức, ngữ cảnh, và tính thỏa mãn
P là tập hữu hạn các biểu tượng. Nếu p

P, thì p là 1 phần tử (atom), và p hay

sẽ là các literal của P.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 6
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Trong đó

sẽ là thể phủ định (negation) của p và
¬
(

) là p.
Mệnh đề là 1 chuỗi có phân cách các literal l
1

l
2





l
n
. 1 mệnh đề đơn vị
là 1 mệnh đề chỉ gồm 1 literal.
Công thức dạng chuẩn CNF có dạng C
1

C
2




C
n
với n

1. Đôi khi nếu
không gây hiểu nhầm chúng ta có thể ký hiệu công thức trên như sau { C
1
, …, C
n
}
Một ngữ cảnh M là 1 tập các literal có dạng {p ,
p
¬
}

M. Một literal l là true

trong M nếu l

M, là false trong M nếu
l
¬

M, và là undefined (không xác
định) trong các trường hợp khác. Nghĩa là một literal là defined (xác định) trong M
nếu nó nhận được giá trị hoặc true hoặc false trong M.
Ngữ cảnh M gọi là phủ (total) tập P nếu mọi literal trong P đều xác định trong
M.
Một mệnh đề C là true trong M nếu ít nhất 1 literal của nó ở trong M, là false
nếu tất cả các literal của nó đều false trong M, và là không xác định (undefined)
trong các trường hợp còn lại.
Một công thức (fomula) F là true trong M hay còn gọi là satisfied (được thỏa
mãn) bởi M, ký hiệu là M |= F nếu mọi mệnh đề của nó đều true trong M. Trong
trường hợp đó M gọi là một model của F. Nếu F không có model nào thì F là
unsatisfiable (không thể thỏa mãn).
Nếu F và F’ đều là các công thức, nếu F’ đúng trong tất cả các model của F thì ta
có thể viết là F |= F’. Khi đó ta có thể gọi là F’ kế thừa F, hay là một hệ quả logic
của F.
Nếu ta có F |= F’ và F’|= F thì ta nói rằng F và F’ bằng logic với nhau.
Từ đây chúng ta sẽ thống nhất các ký hiệu như sau : l là ký hiệu của literal. C và
D là các ký hiệu của mệnh đề, F và G là ký hiệu của công thức. M và N là ký hiệu
của ngữ cảnh.
Dễ dàng có thể thấy rằng, nếu C là 1 mệnh đề dạng l
1




l
n
thì
C
¬
sẽ có
dạng là
¬
l
1





¬
l
n
. Cách biến đổi này rất hữu dụng trong nhiều trường hợp để
hiểu các bổ đề cùng các định lý.
1.4.2.2 Khái niệm trạng thái và hệ thống biến đổi trong lý thuyết DPLL
DPLL có thể được miêu tả đầy đủ bằng cách thừa nhận trạng thái của thủ tục có
dạng là FailState (trạng thái sai) hoặc dạng M║F. Trong đó F là một công thức có
dạng chuẩn CNF, có tập các mệnh đề là hữu hạn và M là 1 ngữ cảnh.
Chính xác hơn, M là một chuỗi các literal, không bao gồm đồng thời cả nó và
thể phủ định của nó. Và mỗi literal có một chú thích, một bit dùng để đánh dấu nó là
1 literal decision (được quyết định) hay chưa. Có thể coi M là một tập hay một sự
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 7
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
kết hợp giữa các các literal cũng giống như 1 công thức không quan tâm literal có là

literal quyết định hay không, cũng như thứ tự của nó.
Sự liên kết giữa các literal trong chuỗi chỉ đơn giản là được đặt cạnh nhau. Nếu
muốn nhấn mạnh 1 literal là 1 literal được quyết định chúng ta sẽ ký hiệu nó là l
d
.
Ký hiệu cho 1 chuỗi không có literal là
φ
. Ta nói rằng mệnh đề C là xung đột trong
trạng thái M║F, nếu M |=
¬
C.
Chúng ta sẽ mô hình thủ tục DPLL bởi 1 tập các trạng thái liên tiếp liên kết với
nhau bởi lý hiệu

, gọi là quan hệ biến đổi. Nếu S

S’thì ta nói rằng có một
phép biến đổi từ S sang S’. Ký hiệu

* để chỉ phép biến đổi phản thân, nghĩa là
trạng thái S không thay đổi qua phép biến đổi đó. Nếu ta cso 1 loạt những biến đổi
có dạng S
0


S
1
, S
1



S
2 ,
… gọi là derivation (chuỗi dẫn xuất) , ta có thể ký hiệu
nó thành S
0


S
1

S
2


…và gọi một chuỗi con là subdervation (một chuỗi dẫn
xuất con).
Các quan hệ biến đổi từ nay được đặt tên là transition-rule (luật biến đổi). Từ
trạng thái S , 1 luật biến đổi được áp dụng từ S sang trạng thái mới S’. Một phép
biến đổi này gọi là một bước áp dụng.
Một hệ thống biến đổi là một tập các phép biến đổi được đưa vào cùng tập các
trạng thái. Nếu ta có một hệ thống biến đổi R, phép biến đổi của hệt hống này sẽ
được ký hiệu

R
. Nếu từ một trạng thái S, không có một phép biến đổi nào của hệ
thống R có thể áp dụng được cho nó thì ta nói rằng S là trạng thái final (kết thúc)
với hệ thông biến đổi là R.
1.4.2.3 Thủ tục DPLL truyền thống
Một hệ thống DPLL đơn giản là một hệ thống chỉ tuân theo luật DPLL truyền

thống, bao gồm 5 luật sau. Chúng ta giới thiệu luật này ở đây vì lý do giải thích và
cũng vì lý do lịch sử.
Định nghĩa 2.1 : Classical DPLL system - Hệ thống DPLL truyền thống là hệ
thống Cl bao gồm 5 luật sau. Trong hệ thống các literal được liên tục thêm vào M
không có chú thích gì ngoại trừ literal được thêm vào nhờ luật Decide.
UnitPropagate :
M║F, C

l

M l ║ F, C

l nếu
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 8
M├ C
l chưa được xác định
trong M
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
PureLiteral :
M║F

M l ║ F nếu
Decide :
M║F

M l
d
║ F nếu
Fail :


M║F, C

FailState nếu
Backtrack :
M l
d
N║F, C

M
¬
l ║ F, C nếu
Ta có thể sử dụng hệ thống biến đổi Cl trên để quyết định tính thỏa mãn của một
công thức đầu vào một cách đơn giản bằng cách tạo ra một chuỗi dẫn xuất như sau :
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 9
l chưa được xác định
trong M
l xuất hiện trong một vài
mệnh đề của F
l không có trong các
mệnh đề của F
l hoặc l xuất hiện trong
1 mệnh đề của F
l chưa được xác định
trong M
M├ C
M không còn chứa 1
literal decision nào
M l N ├ C
N không còn chứa 1
literal decision nào

Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
φ
║F

Cl


Cl
S
n
, trong đó S
n
là trạng thái kết thúc đối với tập luật là Cl. Mỗi
chuỗi dẫn xuất như trên đều kết thúc bởi một trạng thái kết thúc S
n

 F là không thể thỏa mãn nếu và chỉ nếu S
n
là trạng thái FailStase
 Nếu S
n
có dạng M║F thì M là một model của F.
Có một điều đặc biệt của hệ thống DPLL truyền thống khác với các hệ thống
biến đổi khác là thành phần thức 2 của mỗi trạng thái luôn luôn không đổi.
Sau đây chúng ta sẽ đi lý giải cách các luật trên hoạt động.Với những chú ý sau :
M là một chuỗi có dạng M
0
l
1
M

1
…l
k
M
k
, khi đó l
i
là tất cả các decision literal trong
M, chúng ta cũng nói rằng M║F là trạng thái quyết định ở mức k, và tất cả các
literal của mỗi l
i
M
i
thuộc về mức quyết định i.
UnitPropagate : Để một công thức dạng chuẩn CNF thỏa mãn, thì tất cả các mệnh
đề của nó phải true. Do đó nếu một mệnh đề của F có một literal chưa được xác định
trong ngữ cảnh M trong khi tất cả các literal còn lại của mệnh đề là false, thì chắc
chắn ngữ cảnh M phải được thêm vào l.
 PureLiteral : Nếu một literal l là pure trong F. Có nghĩa chỉ có nó xuất hiện
trong các mệnh đề của F, còn thể phủ định của nó thì không, thì F có thể thảo
mãn được chỉ nếu có một model làm l true. Do đó, nếu M chưa xác định l thì
ta có thể thêm l vào M.
 Decide : Luật này được giới thiệu trong trường hợp phân tách. Một literal
chưa xác định được chọn từ F, và thêm vào M. Literal ấy sẽ được chú thích là
decision literal, để đánh dấu rằng Ml có thể không phát triển được để trở
thành một model của F, thì ta có thể cân nhắc cách mở rộng M là M
¬
l. Việc
này được đề cập đến trong luật Backtrack (quay lui).
 Fail : Luật này áp dụng khi phát hiện ra một mệnh đề C xung đột và sinh ra

trạng thái FailState khi mà M không có một decision literal nào.
 Backtrack : Nếu một mệnh đề xung đột được phát hiện, nhưng chưa đạt đến
trạng thái FailState (nghĩa là vẫn còn các decision literal trong M), thì luật
Backtrack chỉ ra rằng có thể quay lại 1 mức quyết định, bằng cách thay
decision literal hiện tại bằng
¬
l và xóa đi các chuỗi con được tạo ra sau nó.
Chú ý rằng khi đó
¬
l là một non-decision literal, đó là cách ta thử các khả
năng khác nhau của l.

Ví dụ 2.1 : Cho hệ thống dẫn xuất sau sử dụng hệ thống biến đổi Cl, với mỗi bước
biến đổi có chú thích luật áp dụng tương ứng. Để dễ theo dõi ta cho các atom là các
số tự nhiên, và thể phủ định của nó là số tự nhiên có gạch trên.
φ

41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(Decide)
1
d

41,432,431,32,21
______
∨∨∨∨∨∨∨



Cl
(UnitPropagate)
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 10
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
1
d
_
2

41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(UnitPropagate)
1
d
_
2
3 ║
41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(UnitPropagate)

1
d
_
2
34║
41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(Backtrack)
_
1

41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(UnitPropagate)
_
1
4 ║
41,432,431,32,21
______
∨∨∨∨∨∨∨



Cl
(Decide)
_
1
4
_
3
d

41,432,431,32,21
______
∨∨∨∨∨∨∨


Cl
(UnitPropagate)
_
1
4
_
3
d
2 ║
41,432,431,32,21
______
∨∨∨∨∨∨∨

Trạng thái cuối cùng của chuỗi dẫn xuất này là trạng thái kết thúc. Ngữ cảnh của
nó là một model của công thức ban đầu.
Thủ tục Davis-Putnam (Davis và Putnam – 1960) được giới thiệu đầu tiên với 2

pha trong quá trình chứng minh của mệnh đề logic loại I. Trong pha đầu, tính không
thỏa mãn của một công thức được chứng minh bằng cách tạo ra một vài tập hợp lý.
Pha thứ 2, chứng minh tính không thỏa mãn của nó.
Sự cải tiến sau đó, như thủ tục Davis-Logemann-Loveland (Davis-1962) hầu
như chỉ tập trung vào pha chứng minh tính không thể thỏa mãn được của công thức.
Hầu hết các tác giả bây giờ đều gọi thủ tục DPLL là thủ tục chứng minh tính thỏa
mãn của một mệnh đề logic dựa trên pha chứng minh này. Ban đầu, thủ tục này bao
gồm cả kỹ thuật tìm kiếm sâu thứ nhất với mô hình quay lui giống như thủ tục
DPLL truyền thống mà chúng ta giới thiệu ở trên.
1.4.2.4 Thủ tục DPLL hiện đại
Những cách giải quết vấn đề SAT dựa trên DPLL hiện đại hầu như không thực
hiện hoàn toàn giống DPLL truyền thống. Lấy ví dụ, vì lý do hiệu quả nên luật
Pureliteral thường chỉ sử dụng cho bước tiền sử lý, do đó về sau chúng ta sẽ không
đề cập đến luật này nữa. Bên cạnh đó luật Backjump mới đưa vào hiệu quả hơn
nhiều so với luật Backtrack trước, nên thường được sử dụng thay cho Backtrack.
Sau đây ta sẽ lấy một ví dụ khác cho hệ thống Cl nhưng lại làm nổi bật tính hiệu
quả của luật Backjump mới.
Ví dụ 2.2:
φ

_______
256,65,43,21
∨∨∨∨∨


B
(Decide)
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 11
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
1

d

_______
256,65,43,21
∨∨∨∨∨


B
(UnitPropagate)
1
d
2 ║
_______
256,65,43,21
∨∨∨∨∨


B
(Decide)
1
d
2 3
d

_______
256,65,43,21
∨∨∨∨∨


B

(UnitPropagate)
1
d
2 3
d
4 ║
_______
256,65,43,21
∨∨∨∨∨


B
(Decide)
1
d
2 3
d
4 5
d

_______
256,65,43,21
∨∨∨∨∨


B
(UnitPropagate)
1
d
2 3

d
4 5
d

_
6

_______
256,65,43,21
∨∨∨∨∨


B
(Backtrack)
1
d
2 3
d
4
_
5

_______
256,65,43,21
∨∨∨∨∨

Trước bước Backtrack, mệnh đề
__
256 ∨∨
là mệnh đề xung đột: nó sai trong ngữ

cảnh 1
d
2 3
d
4 5
d

_
6
. Đây là một chuỗi thu được nhờ unitpropagate 2 của decision
1
d
, cùng với 5
d
và unitpropagate của nó là
_
6
.
Do đó, ta có thể thấy rằng 1
d
không phù hợp đi cùng 5
d
cũng như ta có mệnh đề
kéo theo là
__
51∨
. Hoàn toàn tương tự, ta cũng có mệnh đề
__
52∨
Những mệnh đề kéo theo đó gọi là backjump clause (mệnh đề nhảy) nếu sự xuất

hiện của chúng sẽ cho phép áp dụng 1 bước unitpropagate ở mức quyết định sớm
hơn. Tóm lại, luật backjump làm việc như sau : tìm một mệnh đề backjump, quay
trở lại 1 mức quyết định sơm hơn và thêm unitpropagate literal (literal có được nhờ
áp dụng luật unitpropagate) vào ngữ cảnh. Lấy ví dụ, sử dụng mệnh đề
__
52∨
như
một mệnh đề backjump, bước backtrack cuối cùng ở trên có thể thay bởi backjump
để đạt được trạng thái mới với thành phần đầu tiên là
_
521
d
.
Chúng ta sẽ mô hình những điều trên trong hệ thống tiếp theo với luật mới là
backjump, mà backtrack là trường hợp đặc biệt. Trong luật này, mệnh đề C’

l’ là
mệnh đề backjump, với l’ là literal có thể áp dụng luật unitpropagate (
_
5
trong ví dụ
của chúng ta). Sau đó, chúng ta chỉ ra sự hoạt động hiệu quả của luật này : một
mệnh đề backjump luôn luôn có thể được tìm thấy.
Định nghĩa 2.2: Basic DPLL system - Hệ thống Basic DPLL (DPLL cơ bản) là
một hệ thống gồm bốn luật có thể gọi tắt là hệ thông B. B bao gồm các luật là :
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 12
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Unitpropagate, Decide, Fail từ hệ thống Cl (Classical DPLL – DPLL truyền thống)
cùng với luật backjump sau :
Backjump :

M l
d
N║F, C

M l’ ║ F, C nếu
Chúng ta gọi C trong luật Backjump trên là conflicting clause (mệnh đề xung
đột) và mệnh đề C’

l’ là backjump clause (mệnh đề để nhảy).
Như chúng ta biết rằng, mô hình Backtrack luôn luôn quay lại mức quyết định
trước : quay trở lại mức quyết định ngay đó và thêm
¬
l vào ngữ cảnh. Conflict-
driven backjump ( nhảy trách xung đột) được mô hình bởi luật Backjump, có thể
quay lui đến mọi mức quyết định sớm hơn, nhờ vào việc phân tích nguyên nhân sinh
ra mệnh đề xung đột. Backjump có thể quay lui đến vài mức quyết định cùng một
lúc, đến mức quyết đinh thấp hơn mức quyết định ngay trước nó và thêm một vào
literal vào mức quyết định đó. Điều đó có nghĩa là, nó nhảy đến mức quyết định
không còn liên quan đến xung đột. Trong ví dụ trước, nó bỏ qua mức quyết đinh 3
d

với chuỗi con 4, mức quyết định mà hầu như không liên quan gì đến mệnh đề xung
đột xảy ra lúc đó. Tuy nhiên, bằng trực giác, ta thấy rằng trạng thái
_
521
d
đạt được
nhờ sử dụng luật Backjump có vẻ tốt hơn rất nhiều so với trạng thái
_
54321

dd

thu được nhờ luật Backtrack. Điều này đã được chứng minh bằng lý thuyết.
Sau này bằng lý thuyết, người ta còn chứng minh được rằng các literal của mệnh
đề backjump luôn luôn được chọn trong số các phủ định của các decision literal,
mặc dù vẫn tồn tại những lựa chọn tốt hơn. Khi mà thể phủ định của tất cả các
decision literal đã được thêm vào backjump clause, thì luật Backjump sẽ làm việc
tương tự luật Backtrack của Cl. Chúng ta cũng chú ý rằng, trong thực tế đã được
chứng minh, khi đã có trạng thái M║F bao gồm một mệnh đề xung đột thì hoặc là
luật Fail khi mà không có decision literal nào trong M, hoặc là luật Backjump được
áp dụng.
Trong hầu hết các thủ tục DPLL hiện đại, họ thường củng cố thêm tác dụng của
backjump clause bằng cách : thêm thêm chúng vào tập các mệnh đề và gọi là
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 13
M l N ├ C
l’ chưa được xác định
trong M.
Tìm được một vài mệnh đề
C’ l’ và M├C’
l’ hoặc l’ xuất hiện trong F
hoặc trong M l N
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
learned clause (mệnh đề học được), còn được gọi là bổ đề. Cách đó được gọi là
conflict-driven learning (học tránh xung đột) .
Trong ví dụ 2.2, việc học mệnh đề
__
52∨
sẽ cho phép khi ta áp dụng luật
UnitPropagate cho bất kỳ trạng thái nào khi mà ngữ cảnh của nó bao gồm cả hai
literal là 2 và 5. Do đó, chúng ta sẽ tránh được bất kể xung đột nào xảy ra do có cả 2

và 5 trong M. Nếu nhìn nhận là những xung đột tương tự thường xuyên xảy ra trong
thực tiễn thì việc học bổ đề này có hiệu quả vô cùng lớn để tăng hiệu năng thục
hiện.
Khi một bổ đề được sinh ra nhằm hướng tới tránh những xung đột trong tương
lai, nhưng bổ đề đó lại gần như ko được thấy nữa thì nó có thể được xóa đi. Trong
thực tế, một bổ đề được xóa đi khi mà hoạt động của nó rơi xuống dưới một ngưỡng
cho phép nào đó (Bayardo và Schrag – 1997). Hoạt động ở đây có thể coi là số lần
nó là một unit hay là một conflicting clause (Goldberg và Novikov – 2002)
Việc học thêm hay xóa đi một mệnh đề sẽ được giới thiệu trong hệ thống mới là
hệ thống mở rộng của hệ thống Basic DPLL.
Định nghĩa 2.3: Hệ thống DPLL với việc học, ký hiệu là L, bao gồm bốn luật
trong hệ thống Basic DPLL và 2 luật mới :
Learn :
M║F

M ║ F, C nếu
Forget :

M║F

M ║ F, C nếu
Trong bất kỳ bước áp dụng nào của luật Learn, mệnh đề C cũng được gọi là
learned (được học) nếu nó không thuộc về F. Tương tự, ta gọi là được forgotten
(được quên) bởi luật Forget.
Quan sát, thấy rằng luật Learn cho phép chúng ta thêm vào F những mệnh đề
kéo theo C tùy ý, với điều kiện các atom trong C phải có trong F hoặc M. Mô hình
này không chỉ là học bổ đề để tránh xung đột mà còn xuất hiện trong rất nhiều kỹ
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 14
Mỗi atom của C đều xuất hiện
trong F hoặc trong M

F├ C
F├ C
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
thuật khác nữa để sinh ra những chuỗi con kéo theo bởi F, ví dụ như limited form
(dạng giới hạn) của cách giải quyết vấn đề (sẽ được giới thiệu trong ví dụ sau).
Tương tự, luật Forget được sử dụng trong nguyên tắc xóa bớt từ F bất kỳ mệnh
đề nào có thể kéo theo từ các phần còn lại của F, không chỉ là các mệnh đề được
thêm từ luật Learn. Tuy nhiên, việc áp dụng triệt để hai luật này lại có hạn chế trong
thực tế bởi giá phải trả để tìm ra những mệnh đề kéo theo.
Sáu luật trên của hệ thống DPLL với việc học là mô hình khái niệm ở mức cao
của quá trình thực hiện DPLL. Những luật này sẽ cho ta lý giải được những đặc tính
như là đúng đắn và kết thúc của thủ tục DPLL.
Ví dụ 2.3 : Sau đây chúng ta sẽ lấy ví dụ để chỉ ra cách dùng đồ thị xung đột để
áp dụng luật Backjump tìm mệnh đề backjump clause. Trong ví dụ này chúng ta sẽ
sử dụng một chiến lược có trong hầu hết các cách giải quyết vần đề của SAT
i. Luật Decide chỉ được áp dụng khi mà không còn luật nào khác trong Basic
DPLL có thể áp dụng được nữa.
ii. Sau mỗi bước áp dụng luật Backjump thì mệnh đề backjump được học.
Giả sử ta đã có một trạng thái như sau M ║ F, trong các mệnh đề của F bao gồm:
321375254144865788769
__________
∨∨∨∨∨∨∨∨∨∨∨∨∨∨
Và M có dạng : …6…
_
7
…9
d
____
321458
.

Dễ dàng thấy rằng trạng thái này đạt được sau decision cuối cùng 9
d
cùng sáu
lần áp dụng luật UnitPropagate. Lấy ví dụ,
_
8
có được là từ 9, 6, và
_
7
cùng mệnh đề
___
8769 ∨∨∨
. DPLL sẽ lưu giữ lại chuỗi các literal được sinh ra và những mệnh đề
nguyên nhân. Nhận thấy rằng trạng thái M ║ F ở trên mệnh đề
321
_
∨∨
là mệnh đề
xung đột, khi mà M bao gồm
2,1
_

_
3
. Sử dụng những thông tin đã được lưu giữ,
DPLL sẽ lần được theo nguyên nhân gây ra mệnh đề xung đột này. Ví dụ, lưu thông
tin có được
_
3
là từ

_
5

_
7
, do mệnh đề
_
375 ∨∨
, và literal
_
5
là do đã có
_
8

_
7
,
….
Bằng cách quay lui từ mệnh đề xung đột, chúng ta có thể xây dựng được đồ thị
xung đột, những node trong mệnh đề xung đột có màu xám :
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 15
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Hình 2- : Đồ thị xung đột để tìm backjump clause
Trong đồ thị trên thì node của decision literal hiện tại và các literal của các mức
trước (6,
_
7
và 9
d

) không có mũi tên đến, còn thể phủ định của các literal trong
mệnh đề xung đột không có mũi tên ra (
_
1
, 2 và
_
3
).
Để tìm backjump clause, ta chia đồ thị trên thành hai phần. Phần đầu bao gồm ít
nhất là tất cả các literal không có mũi tên đến. Phần thứ hai bao gồm ít nhất các
literal không có mũi tên ra, đó là các thể phủ định của các literal trong mệnh đề
xung đột. Dễ dàng nhận thấy là không một model nào của F có thể thỏa mãn tất cả
các literal có mũi tên ra bị cắt ở trên.
Trong ví dụ này, đường cắt được ký hiệu bằng nét đứt, các literal có mũi tên ra
bị cắt là
_
8
,
_
7
và 6. Từ các literal này, sử dụng luật UnitPropagate cùng năm mệnh
đề trên của F có thể tạo ra thể phủ định của các literal trong mệnh đề xung đột. Do
đó, từ F có thể suy ra rằng
_
8
,
_
7
và 6 không thể đồng thời xảy ra, hay có thể suy ra
một mệnh đề mới là

_
678 ∨∨
. Trong trường hợp đó, nó có thể là một backjump
clause, là mệnh đề C’

l’ trong định nghĩa luật Backjump, khi đó 8 đóng vai trò là
l’. Mệnh đề mới này cho phép nhảy đến mức quyết định của
_
7
và thêm 8 vào. Sau
đó mệnh đề
_
678 ∨∨
được học để lý giải lý do xung đột khi xuất hiện 8 mà đã có 6

_
7
.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 16
6

9
d
_
7
_
8
4
_
5

_
1
_
3
2
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
Cách chia ở trên tạo ra một backjump clause có duy nhất một literal thuộc
decision literal hiện tại. Thể phủ định của literal này đóng vai trò là l’ trong luật
Backjump. Trong lý thuyết SAT, literal này được gọi là Unique Implication Point
(UIP) của đồ thị xung đột. Chính thức, thì các UIP được xác định như sau : Đặt D
là tập tất cả các literal của mệnh đề xung đột C. Nó luôn không rỗng khi mà luật Fail
và luật Backjump chưa được áp dụng. Khi đó UIP là bất kể literal nào thuộc đường
từ decision literal hiện tại đến thể phủ định của một literal thuộc D. Chú rằng đồ thị
xung đột luôn chứa ít nhất một UIP, tính cả chính bản thân decision literal hiện tại,
nhưng thông thường thì nhiều hơn. (trong ví dụ của chúng ta thì cả 9
d

_
8
đều là
các UIP).
Trong thực tế, thì việc xây dựng các biểu đồ xung đột là không cần thiết. Ta chỉ
cần quay lui từ mệnh đề xung đột cho đến khi có được UIP đầu tiên (Marques-Silva
và Sakallah – 1999; Zhang – 2001).
Việc xây dựng mệnh đề xung đột cũng có thể làm bằng một chuỗi dẫn xuất trong
tính toán resolution, gọi là quá trình backward conflict resolution (cách giải quyết
bằng quay lui). Trong ví dụ của chúng ta mệnh đề
_
678 ∨∨
đạt được nhờ các bước

tính toán resolution trên mệnh đề xung đột:

321375
__
∨∨∨∨

__
2175254 ∨∨∨∨∨


175414
___
∨∨∨∨


__
475486 ∨∨∨∨
5786578
__
∨∨∨∨∨

_
678 ∨∨
Quá trình kết thúc khi sinh ra được một mệnh đề chỉ gồm một literal của mức
quyết định hiện tại, đó chính xác là UIP đầu tiên (trong ví dụ của chúng ta là literal
8 trong mệnh đề
_
678 ∨∨
). Trong một vài cách giải quyết vấn đề của SAT, ví dụ
như Siege, cũng học một vài mệnh đề trung gian trong chuỗi resolution.

1.5 Hợp giải Robinson với logic vị từ loại I
Logic vị từ loại I vô cùng quan trọng đối với hệ thống suy diễn (Reasoning
System). Trong suốt nhiều năm nay, nó là công cụ hữu ích dùng để nghiên cứu và
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 17
Đồ án tốt nghiệp đại học Đề tài: Suy diễn tự động-Hệ thống suy diễn SLR
tryền đạt. Sau đây, chúng ta sẽ tìm hiểu về logic vị từ loại I, cũng như thuật giải
Robinson áp dụng cho nó để quyết định tính thỏa mãn hay không của một công thức
SAT.
1.5.1 Logic vị từ loại I (FOL)
Phần sau sẽ dùng để giới thiệu hệ thống cú pháp của logic vị từ loại I (FOL).
Ngôn ngữ dùng trong FOL:
Trong FOL có sử dụng : biến (a,b,x, y,…), hằng ( A, B, John, 0, 1,
π
…), hàm
(F, G, Cosine, Height, FatherOf,… ), quan hệ (P, Q, Red, Brother,…) và thêm các
ký hiệu của logic như
∀∃,
(tồn tại , với mọi).
FOL có một khái niệm mới gọi là hạng thức (term). Thật ra đó chỉ là sự tổng hợp
của các khái niệm cũ mà thôi. Hạng thức có thể là biến; có thể là hằng số; có thể là
hàm của các hạng thức,…
Câu trong logic được hình thành như sau : có thể là giá trị true hoặc false; một
hàm; có thể là dạng t
1
= t
2
, với t1, t2 là các hạng thức; nếu
α
là một câu thì
ααα

xx ∃∀¬ ,,
cũng là câu; nếu
2,1
αα
là một câu thì
21212121
,,,
αααααααα
↔→∨∧
cũng là các câu.
Có một điều lý thú trong logic vị từ loại I là : sau các ký hiệu logic
∀∃,
là các
biến (a ,b, x, y,…) để phân biệt với các logic vị từ loại II, và III (sau các ký hiệu
logic trên là một logic mệnh đề, một câu, một hàm,…).
Một số khái niệm cơ bản :
Để tránh nhập nhằng trong câu của FOL chúng ta quy định thứ tự ưu tiên thực
hiện như sau : ¬, ∧, ∨, →, ↔, {∀, ∃} , hoặc ta có thể sử dụng dấu ngoặc.
Ví dụ : ∀x ¬P(x) ∨ Q(x) ∧ R(x) → S(x)
Có thể rõ ràng hơn khi được viết như sau :
∀x (((¬P(x)) ∨ (Q(x) ∧ R(x))) → S(x))
Do FOL được sử dụng để giải thích những vấn đề trong thực tế, nên ta có thể chỉ
ra được sự liên tưởng ngữ nghĩa như sau : hằng và biến được xem như là các đối
tượng trong thực tế (con người, đồ vật, …); các hàm là các mối liên hệ giữa đối
tượng này đến đối tượng khác; các biểu tượng quan hệ được xem như biểu diễn tính
chất của đối tượng.
Ví dụ : George_W_Bush, ExpresidentOf (US), SonOf (Barbara) đều là cách biểu
diễn cho một đối tượng.
Sinh viên thực hiện: Nguyễn Thị Thúy Mai – Khóa: K50 – Lớp: Hệ thống thông tin B 18

×