Nhập môn Trí tuệ Nhân tạo·Knowledge - Tri thức

Chế độ xem

Resolution và CNF - Chứng minh bằng mâu thuẫn

Resolution là một kỹ thuật suy luận quan trọng trong symbolic AI. Ý tưởng cốt lõi là:

  1. đưa các sentence về dạng chuẩn;
  2. tìm các literal bù nhau;
  3. sinh clause mới;
  4. nếu giả sử phủ định của query dẫn tới mâu thuẫn, query được chứng minh.

Mục tiêu

Sau bài này, bạn cần:

  • phân biệt literal, clause và CNF;
  • áp dụng resolution trên hai clause;
  • chuyển các biểu thức đơn giản về CNF;
  • hiểu proof by contradiction;
  • nhận biết empty clause là dấu hiệu mâu thuẫn;
  • so sánh cách làm của Resolution với Model Checking.

Resolution - suy luận bằng các literal bù nhau

Resolution là một inference rule mạnh và có thể dùng để xây hệ thống chứng minh tự động.

Bắt đầu bằng ví dụ:

P∨QP \lor Q

và:

¬P\neg P

Nếu P không thể đúng, để P OR Q còn đúng thì Q phải đúng.

Do đó:

P∨Q,  ¬PQ\frac{P \lor Q,\;\neg P}{Q}

Complementary Literals

Hai literal như:

PP

và:

¬P\neg P

được gọi là complementary literals - literal bù nhau.

Resolution tìm các cặp bù nhau để loại chúng và kết hợp phần còn lại.

Ví dụ tổng quát:

P∨QP \lor Q ¬P∨R\neg P \lor R

Resolution trên PP và ¬P\neg P tạo:

Q∨RQ \lor R

Literal, Clause và CNF

Literal

Literal là:

  • một propositional symbol như PP;
  • hoặc phủ định của symbol như ¬P\neg P.

Clause

Clause là một OR của các literal.

Ví dụ:

P∨¬Q∨RP \lor \neg Q \lor R

Conjunctive Normal Form - CNF

CNF là một AND của các clause.

Ví dụ:

(P∨Q)∧(¬Q∨R)∧(¬R∨S)(P \lor Q) \land (\neg Q \lor R) \land (\neg R \lor S)

Có thể nhớ cấu trúc:

CNF = AND của nhiều nhóm
mỗi nhóm = OR của các literal

Chuyển biểu thức về CNF

Một quy trình phổ biến:

  1. loại biconditional;
  2. loại implication;
  3. đẩy NOT vào trong bằng De Morgan và double negation;
  4. dùng distributive law để đạt dạng AND của các OR.

Ví dụ: chuyển (P∨Q)→R(P \lor Q) \to R sang CNF

Bắt đầu:

(P∨Q)→R(P \lor Q) \to R

Loại implication:

¬(P∨Q)∨R\neg(P \lor Q) \lor R

Dùng De Morgan:

(¬P∧¬Q)∨R(\neg P \land \neg Q) \lor R

Phân phối OR qua AND:

(¬P∨R)∧(¬Q∨R)(\neg P \lor R) \land (\neg Q \lor R)

Đây là CNF vì:

  • toàn biểu thức là AND;
  • mỗi thành phần là một clause OR của literal.

Resolution bằng proof by contradiction

Muốn chứng minh:

KB⊨αKB \models \alpha

thay vì cố trực tiếp sinh α\alpha, ta có thể giả sử điều ngược lại:

KB∧¬αKB \land \neg\alpha

Nếu giả sử đó dẫn tới contradiction, thì ¬α\neg\alpha không thể cùng đúng với KB.

Do đó:

KB⊨αKB \models \alpha

Ý tưởng:

Empty Clause - dấu hiệu mâu thuẫn

Nếu Resolution cuối cùng cho ra empty clause:

()()

thì ta đã sinh ra False.

Một cách hình dung:

Ta có P.
Ta cũng có ¬P.
Không có thế giới nhất quán nào làm cả hai cùng đúng.

Đó là contradiction.

Ví dụ Resolution từng bước

Knowledge Base:

(A∨B)∧(¬B∨C)∧¬C(A \lor B) \land (\neg B \lor C) \land \neg C

Query:

AA

Ta muốn kiểm tra:

KB⊨A  ?KB \models A\;?

Bước 1 - giả sử query sai

Thêm:

¬A\neg A

Ta có các clause:

1. A OR B
2. NOT B OR C
3. NOT C
4. NOT A

Bước 2 - resolve clause 2 và 3

Từ:

¬B∨C\neg B \lor C

và:

¬C\neg C

suy ra:

¬B\neg B

Bước 3 - resolve clause 1 với ¬B\neg B

Từ:

A∨BA \lor B

và:

¬B\neg B

suy ra:

AA

Bước 4 - resolve AA và ¬A\neg A

Ta có:

AA

và:

¬A\neg A

=> empty clause.

Giả sử NOT A gây mâu thuẫn với KB, nên:

KB⊨AKB \models A

Model Checking và Resolution khác nhau thế nào?

Tiêu chíModel CheckingResolution
Ý tưởngthử các modelsuy luận trên clause
Dễ hiểurất trực tiếpcần biến đổi logic
Dữ liệu làm việctruth assignmentsCNF clauses
Cách chứng minhquery đúng ở mọi model thỏa KBthêm phủ định query rồi tìm contradiction
Hạn chếsố model tăng 2n2^ncó thể sinh nhiều clause

Không nên hiểu Resolution là “luôn nhanh”. Trong logic tổng quát, suy luận vẫn có thể rất tốn tính toán. Điểm chính là Resolution cho một cơ chế proof có cấu trúc thay vì liệt kê toàn bộ model một cách ngây thơ.

Chốt lại

Để chứng minh:

KB⊨αKB \models \alpha

Resolution thường biến bài toán thành:

KB∧¬αKB \land \neg\alpha

Nếu các clause cuối cùng dẫn tới empty clause, giả sử ¬α\neg\alpha không thể đồng thời đúng với KB, nên α\alpha được entail.

Điểm quan trọng không phải là học thuộc thao tác máy móc, mà là hiểu ba lớp:

Sentence logic
    -> CNF clauses
    -> Resolution
    -> Contradiction hoặc không sinh thêm tri thức mới