You are on page 1of 25

TRÍ TUỆ NHÂN TẠO

Suy diễn với Logic Bậc Nhất


Nội dung trình bày
2

 Cơ sở của hợp giải trên logic bậc nhất


 Hợp giải trên logic bậc nhất
 Các ví dụ
 Thừa số hóa
 Suy diễn tiến và suy diễn lùi
 Thuật giải suy diễn tiến
 Thuật giải suy diễn lùi
Cơ sở của hợp giải FOL
3

 Hợp giải (Robinson): ñể chứng minh một tập KB có suy


dẫn logic ñược một câu α hay không, viết lại KB ∧ ¬α
dưới dạng mệnh ñề (clausal form) và cố gắng suy dẫn
ra mệnh ñề sai (hợp giải hai mệnh ñề ñối ngẫu)
 Qui tắc hợp giải cho FOL
α∨ϕ
MGU(ϕ, ω) = θ
¬ω ∨ β
____________

(α ∨ β)(θ) Substitute
Ví dụ
4

Chứng minh rằng (P(x) ⇒ Q(x)) và P(A) suy dẫn logic


∃z.Q(z)

1. ¬P(x) ∨ Q(x) Tiền ñề


2. P(A) Tiền ñề
3. ¬Q(z) Kết luận
4. ¬P(z) 1, 3 θ1 = {x/z}
5. False 2, 4 θ2 = {z/A}

Yes
Ví dụ (tt)
5

Cho trước (P(x) ⇒ Q(x)) và P(A) và P(B), tìm z sao cho Q(z)
là ñúng

1. ¬P(x) ∨ Q(x) Tiền ñề


2. P(A) Tiền ñề
3. P(B) Tiền ñề
4. ¬Q(z) Kết luận
5. ¬P(z) 1, 4 θ1 = {x/z}
6. False 2, 5 θ2 = {z/A}
7. False 3, 5 θ3 = {z/B}
z=A
z=B
Ví dụ Quan hệ họ hàng
6

Art là cha của Bob và Bud.


Bob là cha của Cal và Coe.
Ông nội là cha của cha.

F(Art, Bob)
F(Art, Bud)
F(Bob, Cal)
F(Bob, Coe)
F(x, y) ∧ F(y,z) ⇒ G(x,z)
Art có phải là Ông của Coe?
7

1. F(Art, Bob) Tiền ñề


2. F(Art, Bud) Tiền ñề
3. F(Bob, Cal) Tiền ñề
4. F(Bob, Coe) Tiền ñề
5. ¬F(x, y) ∨ ¬F(y,z) ∨ G(x,z) Tiền ñề
6. ¬G(Art, Coe) Kết luận
7. ¬F(Art, y) ∨ ¬F(y,Coe) 5, 6 θ1 ={x/Art, z/Coe}
8. ¬F(Art, Bob) 4, 7 θ2 ={y/Bob}
9. False 1, 8 θ3 ={ }

Yes
Ai là Ông của Coe?
8

1. F(Art, Bob) Tiền ñề


2. F(Art, Bud) Tiền ñề
3. F(Bob, Cal) Tiền ñề
4. F(Bob, Coe) Tiền ñề
5. ¬F(x, y) ∨ ¬F(y,z) ∨ G(x,z) Tiền ñề
6. ¬G(x2, Coe) Kết luận
7. ¬F(x2, y) ∨ ¬F(y,Coe) 5, 6 θ1 = {z/ Coe, x/x2}
8. ¬F(Bob, Coe) 1, 7 θ2 = {x2/ Art, y/ Bob}
9. False 4, 8 θ3 = {}

x2 = Art
Ai là Cháu của Art?
9

1. F(Art, Bob) Tiền ñề


2. F(Art, Bud) Tiền ñề
3. F(Bob, Cal) Tiền ñề
4. F(Bob, Coe) Tiền ñề
5. ¬F(x, y) ∨ ¬F(y,z) ∨ G(x,z) Tiền ñề
6. ¬G(Art, z2) Kết luận
7. ¬F(Art, y) ∨ ¬F(y,z2) 5, 6 θ1 = {x/Art, z/z2}
8. ¬F(Bob, z2) 1, 7 θ2 = {y/Bob}
9. ¬F(Bud, z2) 2, 7 θ3 = {y/Bud}
10. False 3, 8 θ4 = {z2/Cal}
11. False 4, 8 θ5 = {z2/Coe}
z2 = Cal
z2 = Coe
Ông và cháu?
10

1. F(Art, Bob) Tiền ñề


2. F(Art, Bud) Tiền ñề
3. F(Bob, Cal) Tiền ñề
4. F(Bob, Coe) Tiền ñề
5. ¬F(x, y) ∨ ¬F(y,z) ∨ G(x,z) Tiền ñề
6. ¬G(x2, z2) Kết luận
7. ¬F(x2, y) ∨ ¬F(y,z2) 5, 6 θ1 = {x/x2, z/z2}
8. ¬F(Bob, z2) 1, 7 θ2 = {x2/Art, y/Bob}
9. ¬F(Bud, z2) 2, 7 θ3 = {x2/Art, y/Bud}
10. False 3, 8 θ4 = {z2/Cal}
11. False 4, 8 θ5 = {z2/Coe}
x2 = Art, z2 = Cal
x2 = Art, z2 = Coe
Ví dụ Suy diễn lùi (tt)
21

Ask(G(Art,z), {})
q’ = G(Art,z)
θ’ = {x/Art} // P(x,y) ∧ P(y,z) ⇒ G(x,z)
Ask({P(x,y),P(y,z)},{x/Art})
q’ = P(Art,y)
θ’ = {x/Art} // F(x,y) ⇒ P(x,y)
Ask({F(x,y),P(y,z)}, {x/Art})
q’ = F(Art,y)
θ’ = {x/Art,y/Bob} // F(Art,Bob)
Ask({P(y,z)}, {x/Art, y/Bob})
q’ = P(Bob,z)
θ’ = {x2/Bob, y2/z} // F(x2,y2) ⇒ P(x2,y2)
Thừa số hóa (Factoring)
12

 Qui tắc thừa số hóa


α∨β∨γ
MGU(α, β) = θ
___________

(α ∨ γ)(θ)
 Ví dụ:
Q(x) ∨ P(x) ∨ P(A)
______________________
θ = {x/A}
Q(A) ∨ P(A)
 Hợp giải nhị phân + thừa số hóa là ñầy ñủ
ðiều cần nắm
24

 Các phương pháp suy diễn trên logic vị từ


 Chạy tay ñược hợp giải trên logic vị từ
 Cài ñặt ñược phương pháp suy diễn lùi (và một
phương pháp khác) trên logic vị từ
Thuật toán Suy diễn Tiến
14

FOL-FC-Ask(KB,α){
repeat until new là rỗng
new  {}
với mọi câu r trong KB // r ở dạng chuẩn hóa (p1 ∧… ∧ pn => q)
với mọi phép thế θ sao cho (p1 ∧… ∧ pn)(θ)= (p’1 ∧… ∧ p’n)(θ)
với p’1,…,p’n nào ñó trong KB
q’  Subst(θ,q)
if q’ không phải là một câu ñã có trong KB hay new then
thêm q’ vào new
φ  Unify(q’, α)
if φ thành công then return φ
thêm new vào KB
return false
}
Ví dụ Quan hệ họ hàng
15

1. F(Art, Bob)
2. F(Art, Bud)
3. F(Bob, Cal)
4. F(Bob, Coe)
5. M(Ave, Bee)
6. M(Bee, Coe)
7. M(Bee, Cal)
8. M(x,y) ⇒ P(x,y)
9. F(x,y) ⇒ P(x,y)
10. P(x, y) ∧ P(y,z) ⇒ G(x,z)
Ví dụ Suy diễn tiến
16

8. M(x,y) ⇒ P(x,y)
θ1 = {x/Ave, y/Bee} M(Ave,Bee)
q’ = P(Ave, Bee)
θ2 = {x/Bee, y/Cal} M(Bee,Cal)
q’ = P(Bee,Cal)
θ3 = {x/Bee, y/Coe} M(Bee,Coe)
q’ = P(Bee,Coe)
Ví dụ Suy diễn tiến (tt)
17

9. F(x,y) ⇒ P(x,y)
θ1 = {x/Art, y/Bob} F(Art,Bob)
q’ = P(Art,Bob)
θ2 = {x/Art, y/Bud} F(Art,Bud)
q’ = P(Art,Bud)
θ3 = {x/Bob, y/Cal} F(Bob,Cal)
q’ = P(Bob,Cal)
θ4 = {x/Bob, y/Coe} F(Bob,Coe)
q’ = P(Bob,Coe)
TRÍ TUỆ NHÂN TẠO
Suy diễn với Logic Bậc Nhất
Thuật toán Suy diễn Lùi
19

FOL-BC-ASK(KB, goals, θ){


Inputs: KB, cơ sở tri thức
goals, danh sách dưới dạng nối rời của một câu truy vấn
θ, phép thế hiện tại, ñược khởi tạo rỗng {}
biến cục bộ: ans, một tập các phép thế, ñược khởi tạo rỗng

if goals rỗng then return {θ}


q’  SUBST(θ, first(goals))
for each r trong KB mà r có dạng chuẩn (p1 ∧ … ∧ pn ⇒ q)
và θ’  UNIFY(q, q’) thành công
ans  FOL-BC-ASK(KB, [p1,…,pn| REST(goals)], θ . θ’)) ∪ ans
return ans
Compose
}
Ví dụ Suy diễn lùi
20

Ask(G(Art,Cal), {})
q’ = G(Art,Cal)
θ’ = {x/Art,z/Cal} // P(x,y) ∧ P(y,z) ⇒ G(x ,z)
Ask({P(x,y),P(y,z)},{x/Art,z/Cal})
q’ = P(Art,y)
θ’ = {x2/Art,y/y2} // F(x2,y2) ⇒ P(x2,y2)
Ask({F(x2,y2),P(y,z)}, {x/Art,z/Cal,x2/Art, y/y2}}
q’ = F(Art,y2)
θ’ = {y2/Bob} // F(Art,Bob)
Ask({P(y,z)}, {x/Art,z/Cal,x2/Art,y/Bob})
q’ = P(Bob,Cal)
θ’ = {x3/Bob,y3/Cal} // F(x3,y3) ⇒ P(x3,y3)
Ask({F(x3,y3)}, {…x3/Bob,y3/Cal}
 ans
Ví dụ Suy diễn lùi (tt)
21

Ask(G(Art,z), {})
q’ = G(Art,z)
θ’ = {x/Art} // P(x,y) ∧ P(y,z) ⇒ G(x,z)
Ask({P(x,y),P(y,z)},{x/Art})
q’ = P(Art,y)
θ’ = {x/Art} // F(x,y) ⇒ P(x,y)
Ask({F(x,y),P(y,z)}, {x/Art})
q’ = F(Art,y)
θ’ = {x/Art,y/Bob} // F(Art,Bob)
Ask({P(y,z)}, {x/Art, y/Bob})
q’ = P(Bob,z)
θ’ = {x2/Bob, y2/z} // F(x2,y2) ⇒ P(x2,y2)
Ví dụ Suy diễn lùi (tt)
22

Ask(G(Art,z), {})

Ask({F(x2,y2)}, {…x2/Bob, y2/z})


q’ = F(Bob,z)
θ’ = {z/Cal} // F(Bob,Cal)
Ask({}, {…z/Cal})  ans

θ’ = {z/Coe} // F(Bob,Cal)
Ask({}, {…z/Coe})  ans

θ’ = {x/Art} // M(x,y) ⇒ P(x,y)


Ask({M(x,y),P(y,z)}, {x/Art}}
q’ = M(Art,y)
 false
ðặc ñiểm của suy diễn lùi
23

 Tìm kiếm chứng minh bằng cách ñệ qui theo chiều sâu:
không gian tuyến tính theo kích thước của chứng minh
 Không ñầy ñủ do lặp vô tận
 Giải pháp: Kiểm tra trạng thái hiện tại với mọi trạng thái ñang có
trong stack
 Không hiệu quả do các mục tiêu con bị lặp lại (cả khi
thất bại cũng như thành công)
 Giải pháp: dùng bộ nhớ tạm lưu lại các mục tiêu con ñã duyệt
qua
 ðược dùng nhiều trong lập trình logic (ngôn ngữ Prolog)
ðiều cần nắm
24

 Các phương pháp suy diễn trên logic vị từ


 Chạy tay ñược hợp giải trên logic vị từ
 Cài ñặt ñược phương pháp suy diễn lùi (và một
phương pháp khác) trên logic vị từ
Thắc mắc
25

You might also like