Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
Logic bậc nhất
Tổng quan
Tại sao sử dụng logic bậc nhất?
Logic Bậc nhất
Cú pháp của FOL
Trị đúng trong Logic bậc nhất
Lượng từ với mọi
Lỗi thường gặp cần tránh
Lượng từ Tồn tại
Lỗi thường gặp khác cần tránh
Viết FOL như thế nào
Viết FOL như thế nào (tt)
Suy dẫn trong FOL
Chứng minh và Suy dẫn
Hợp giải Bậc nhất
Dạng mệnh đề (Clausal Form)
Biến đổi thành dạng mệnh đề
Skolem hoá
Slide 19
Slide 20
Phép thế
Slide 22
Đồng nhất
Đồng nhất tổng quát nhất
Slide 25
Thuật toán đồng nhất
Thủ tục đồng nhất biến
Một số ví dụ về đồng nhất
Điều cần nắm
Nội dung
Logic bậc nhất
Tô Hoài Việt
Khoa Công nghệ Thông tin
Đại học Khoa học Tự nhiên TPHCM
thviet@fit.hcmuns.edu.vn
1
Tổng quan
•
•
•
•
•
•
Logic bậc nhất (First Order Logic)
Cú pháp và ngữ nghĩa
Các lượng từ
Hợp giải với logic vị từ
Phép thế
Thuật giải đồng nhất
2
Tại sao sử dụng logic bậc nhất?
• Logic mệnh đề chỉ xử lý trên các sự kiện, có giá
trị đúng hoặc sai, ví dụ “trời mưa”, “Tuấn đi xem
đá banh”… Ta không thể dùng các biến để đại
diện cho nhiệt độ, con người,…
• Trong logic bậc nhất, các biến giúp ta tham
chiếu đến các sự vật trong thế giới và ta còn có
thể lượng hoá chúng: tức là xem xét toàn bộ hay
một phần của sự vật.
3
Logic Bậc nhất
• Các câu không thể biểu diễn bằng logic mệnh
đề nhưng có thể bằng logic bậc nhất
– Socrates là người nên socrates chết
– Khi sơn một hộp bằng màu xanh, nó sẽ trở thành hộp
xanh
– Một người được cho phép truy cập trang web nếu họ
được nếu họ được cấp quyền chính thức hay quen
biết với ai được phép truy cập
4
Cú pháp của FOL
• Biểu thức (Term)
– Ký hiệu hằng: Lan, Tuan, DHKHTN,…
– Biến: x, y, a,…
– Ký hiệu hàm áp dụng cho một hay nhiều term: f(x), tuoi(Lan),
anh-cua(Tuan)…
• Câu (Sentence)
– Một ký hiệu vị từ (predicate) áp dụng cho một hay nhiều term:
Thuoc(Lan, DHKHTN), La-anh-em(Tuan, Lan), La-ban-be(anhcua(Tuan), Lan),…
– t1= t2
– Nếu v là một biến và φ là một câu thì ∀x. φ và ∃x. φ là một câu
– Đóng với các toán tử nối câu: ¬ ∧ ∨ ← ↔ →
5
Trị đúng trong Logic bậc nhất
•
Các câu là đúng ứng với một mô hình và một thể hiện
•
Mô hình chứa các đối tượng (các thành phần) và quan hệ giữa
chúng
•
Thể hiện xác định các tham chiếu cho
các ký hiệu hằng
→
các đối tượng
các ký hiệu vị từ
→
các quan hệ
các ký hiệu hàm
→
các quan hệ hàm
•
Một câu nguyên tố predicate(term1, term2,…termn) là đúng nếu và chỉ
nếu các đối tượng được tham chiếu bởi term1, term2,…termn nắm
trong quan hệ được tham chiếu bởi predicate
6
Lượng từ với mọi
∀ ∀
Sinh viên CNTT thì thông minh:
∀x Sinh-viên(x,CNTT) → Thông-minh(x)
∀ ∀x P đúng trong một mô hình m nếu và chỉ nếu P đúng
với x trong mọi đối tượng có thể của mô hình
• Nghĩa là, tương đương với phép nối liền của các thể
hiện của P
∧
∧
∧
Sinh-viên(Lan,CNTT) → Thông-minh(Lan)
Sinh-viên(Minh,CNTT) → Thông-minh(Minh)
Sinh-viên(Tuấn,CNTT) → Thông-minh(Tuấn)
…
7
Lỗi thường gặp cần tránh
• Thông thường, → là phép nối thường đi với ∀
• Lỗi thường gặp: dùng ∧ làm phép nối chính đi với ∀:
∀x Sinh-viên(x,CNTT) ∧ Thông-minh(x)
nghĩa là “Mọi người đều là sinh viên CNTT và mọi người
đều thông minh”
8
Lượng từ Tồn tại
∀ ∃
Có sinh viên CNTT thông minh:
∃x Sinh-viên(x,CNTT) ∧ Thông-minh(x)
∀ ∃x.P đúng trong một mô hình m nếu và chỉ nếu P đúng
với x trong một đối tượng có thể nào đó của mô hình
• Nghĩa là, tương đương với phép nối rời của các thể hiện
của P
Sinh-viên(Lan,CNTT) ∧ Thông-minh(Lan)
∨ Sinh-viên(Minh,CNTT) ∧ Thông-minh(Minh)
∨ Sinh-viên(Tuấn,CNTT) ∧ Thông-minh(Tuấn)
∨ …
9
Lỗi thường gặp khác cần tránh
• Thông thường, ∧ là phép nối chính với ∃
• Lỗi thường gặp: dùng → làm phép nối chính với ∃:
∃x Sinh-viên(x,CNTT) → Thông-minh(x)
đúng nếu có bất kỳ ai không là sinh viên CNTT!
10
Viết FOL như thế nào
• Mèo là động vật có vú [Mèo1, Động-vật-có-vú1]
∀x.Mèo(x) → Động-vật-có-vú(x)
• Lan là sinh viên học giỏi [Sinh-viên1, Học-giỏi1,Lan]
Sinh-viên(Lan) ∧ Học-giỏi(Lan)
• Cháu là con của anh em [Cháu2, Anh-em2, Con2]
∀x,y.Cháu(x,y) ↔ ∃z.(Anh-em(z,y) ∧ Con(x,z))
• Bà ngoại là mẹ của mẹ [các hàm: bà-ngoại, mẹ]
∀xy. x= bà-ngoại(y) ↔ ∃z.(x= mẹ(z) ∧ z= mẹ(y))
• Mọi người đều yêu ai đó [Yêu2]
∀x, ∃y.Yêu(x, y)
∃x, ∀y.Yêu(x, y)
11
Viết FOL như thế nào (tt)
• Không ai yêu Lan
∀x. ¬Yêu(x, Lan)
¬∃x. Yêu(x,Lan)
• Ai cũng có một cha
∀x, ∃y. Cha(y,x)
• Ai cũng có một cha và một mẹ
∀x, ∃yz. Cha(y,x) ∧ Mẹ(z,x)
• Bất kỳ ai có một cha cũng có một mẹ
∀x. [[∃y.Cha(y,x)] → [∃y.Mẹ(y,x)]]
12
Suy dẫn trong FOL
• KB suy dẫn S: với mọi thể hiện I, nếu KB thoả trong I thì
S cũng thoả trong I
• Nói chung tính toán suy dẫn là không khả thi vì có nhiều
vô số thể hiện có thể.
• Ngay cả việc tính toán tính thoả cũng không khả thi đối
với các thể hiện có tập hợp vô hạn
13
Chứng minh và Suy dẫn
• Suy dẫn xuất phát từ khái niệm tổng quát của phép “kéo
theo”
• Không thể tính toán trực tiếp bằng cách liệt kê khái niệm
• Do đó, ta sẽ làm theo cách chứng minh
• Trong FOL, nếu KB suy dẫn được S thì có một tập hữu
hạn các chứng minh của S từ KB
14
Hợp giải Bậc nhất
P(A)
Tam đoạn luận:
Mọi người đều chết
Socrates là người
Q(A)
Socrates chết
∀x, P(x) Q(x)
∀x, ¬P(x) ∨ Q(x)
P(A)
Q(A)
¬P(A) ∨ Q(A)
P(A)
Q(A)
Tương đương theo
định nghĩa của phép
Suy ra
Hai vấn đề mới:
• biến đổi FOL thành
dạng mệnh đề (clausal
form)
• hợp giải với biến
Thay A vào x, vẫn
đúng
khi đó
Hợp giải Mệnh đề
15
Dạng mệnh đề (Clausal Form)
• cấu trúc ngoài giống CNF
• không có lượng từ
∀x. ∃y. P(x) ⇒ R(x,y)
¬P(x) ∨ R(x,y)
16
Biến đổi thành dạng mệnh đề
1. Loại bỏ các dấu mũi tên
α ↔ β ⇒ (α → β) ∧ (β → α)
α → β ⇒ ¬α ∨ β
2. Phân phối phủ định
¬¬α ⇒ α
¬(α ∨ β) ⇒ ¬α ∧ ¬β
¬(α ∧ β) ⇒ ¬α ∨ ¬β
¬∀x. α ⇒ ∃x.¬α
¬∃x. α ⇒ ∀x.¬α
3. Đổi tên các biến thành phần
∀x.∃y.(¬P(x) ∨ ∃x. Q(x,y)) ⇒∀x1.∃y2.(¬P(x1) ∨ ∃x3. Q(x3,y2))
Trang 17
Skolem hoá
4. Skolem hoá
–
–
thay tên mới cho tất cả lượng từ tồn tại
∃x. P(x) ⇒ P(Lan)
∃x,y.R(x,y) ⇒ R(Thing1, Thing2)
∃x. P(x) ∧ Q(x) ⇒ P(Fleep) ∧ Q(Fleep)
∃x. P(x) ∧ ∃x. Q(x) ⇒ P(Frog) ∧ Q(Grog)
∃y, ∀x. Loves(x,y) ⇒ ∀x.Loves(x, Englebert)
thay hàm mới cho tất cả các lượng từ tồn tại ở tầm vực ngoài
∀x ∃y. Loves(x,y) ⇒ ∀x.Loves(x, beloved(x))
18
Biến đổi thành dạng mệnh đề
5. Bỏ các lượng từ với mọi
∃y, ∀x. Loves(x,y) ⇒ Loves(x, beloved(x))
5. Phần phối or vào and; trả về các mệnh đề
P(z) ∨ (Q(z,w) ∧ R(w,z)) ⇒
{P(z) ∨ Q(z,w), P(z) ∨ Q(w,z)}
5. Đổi tên các biến trong từng mệnh đề
{P(z) ∨ Q(z,w), P(z) ∨ Q(w,z)} ⇒
{P(z1) ∨ Q(z1,w1), P(z2) ∨ Q(w2,z2)}
19
Hợp giải Bậc nhất
P(A)
Tam đoạn luận:
Mọi người đều chết
Socrates là người
Q(A)
Socrates chết
∀x, P(x) Q(x)
∀x, ¬P(x) ∨ Q(x)
P(A)
Q(A)
¬P(A) ∨ Q(A)
P(A)
Q(A)
Tương đương theo
định nghĩa của phép
Suy ra
Điều chủ yếu là tìm các
phép thế đúng đắn cho
các biến
Thay A vào x, vẫn
đúng
khi đó
Hợp giải Mệnh đề
20
Phép thế
P(x, f(y), B): một câu nguyên tố
Các thể hiện
Phép thế
{v1/t1, v2/t2 …}
Ghi chú
P(z, f(w), B)
{x/z, y/w}
Đổi tên biến
P(x, f(A), B)
{y/A}
P(g(z), f(A), B)
{x/g(z), y/A}
P(C, f(A), B)
{x/C, y/A}
Phép thế cơ sở
21
Phép thế
P(x, f(y), B): một câu nguyên tố
Các thể hiện
Phép thế
{v1/t1, v2/t2 …}
Ghi chú
P(z, f(w), B)
{x/z, y/w}
Đổi tên biến
P(x, f(A), B)
{y/A}
P(g(z), f(A), B)
{x/g(z), y/A}
P(C, f(A), B)
{x/C, y/A}
Phép thế cơ sở
Áp dụng một phép thế
P(x, f(y), B) {y/A} = P(x, f(A), B)
P(x, f(y), B) {y/A, x/y} = P(A, f(A), B)
22
Đồng nhất
• Hai biểu thức ω1 và ω2 là đồng nhất được (unifiable) khi
vào chỉ khi tồn tại thế s sao cho ω1s = ω2s
• Gọi ω1 = x và ω2 = y, dưới đây là các phép đồng nhất:
s
ω 1s
ω 2s
{y/x}
X
x
{x/y}
Y
y
{x/f(f(A)), y/f(f(A))}
f(f(A))
f(f(A))
{x/A, y/A}
A
A
23
Đồng nhất tổng quát nhất
• Để đồng nhất Knows(John,x) và Knows(y,z), ta có các
phép thế
θ = {y/John, x/z } hay θ = {y/John, x/John, z/John}
• Phép đồng nhất đầu tiên tổng quát hơn cái thứ hai.
24
Đồng nhất tổng quát nhất
• g là phép đồng nhất tổng quát nhất (most general unifier
- MGU) của ω1 và ω2 khi và chỉ khi với mọi phép đồng
nhất s, tồn tại s’ sao cho ω1.s = (ω1.g)s’ và ω2.s = (ω2.g)s’
ω1
ω2
MGU
P(x)
P(A)
{x/A}
P(f(x), y, g(x))
P(f(x), x, g(x))
{y/x} hay {x/y}
P(f(x), y, g(y))
P(f(x), z, g(x))
{y/x, z/x}
P(x, B, B)
P(A, y, z)
{x/A, y/B, z/B}
P(g(f(v)), g(u))
P(x, x)
{x/g(f(v)), u/f(v)}
P(x, f(x))
P(x, x)
Không cóMGU!
25
Thuật toán đồng nhất
unify(Expr x, Expr y, Subst s){
if s = fail, return fail
else if x = y, return s
else if x là một biến, return unify-var(x, y, s)
else if y là một biến, return unify-var(y, x, s)
else if x là một vị từ hay một hàm,
if y có cùng toán tử,
return unify(args(x), args(y), s)
else
return fail
else
; x và y là các danh sách
return unify(rest(x), rest(y), unify(first(x), first(y),
s))
return fail;
}
26
Thủ tục đồng nhất biến
Thế vào var và x khi còn có thể, tiếp đó thêm vào ràng buộc mới.
unify-var(Variable var, Expr x, Subst s){
if var đã được gắn với giá trị val trong s,
return unify(val, x, s)
else if x được gắn với giá trị val trong s,
return unify(var, val, s)
else if var xuất hiện đâu đó trong x, return fail
else return add({var/x}, s)
}
27
Một số ví dụ về đồng nhất
ω1
ω2
MGU
A(B,C)
A(x,y)
{x/B, y/C}
A(x, f(D,x))
A(E, f(D, y))
{x/E, y/E}
A(x, y)
A(f(C, y), z)
{x/f(C,y), y/z}
P(A, x, f(g(y)))
P(y, f(z), f(z))
{y/A, x/f(z), z/f(g(y)}
P(x, g(f(A)), f(x))
P(f(y), z, y)
Không có
P(x, f(y))
P(z, g(w))
Không có
28
Điều cần nắm
• Ý nghĩa của logic bậc nhất
• Cú pháp của logic bậc nhất
• Có thể biểu diễn một vấn đề dưới dạng
logic bậc nhất
• Chuyển đổi KB thành dạng mệnh đề
• Hiểu được phép thế và phép đồng nhất
29
[...]...Viết FOL như thế nào • Mèo là động vật có vú [Mèo1, Động-vật-có-vú1] ∀x.Mèo(x) → Động-vật-có-vú(x) • Lan là sinh viên học giỏi [Sinh-viên1, Học-giỏi1,Lan] Sinh-viên(Lan) ∧ Học-giỏi(Lan) • Cháu là con của anh em [Cháu2, Anh-em2, Con2] ∀x,y.Cháu(x,y) ↔ ∃z.(Anh-em(z,y) ∧ Con(x,z)) • Bà ngoại là mẹ của mẹ [các hàm: bà-ngoại, mẹ] ∀xy x= bà-ngoại(y) ↔ ∃z.(x= mẹ(z) ∧ z= mẹ(y)) • Mọi người đều yêu ai đó... x/f(z), z/f(g(y)} P(x, g(f(A)), f(x)) P(f(y), z, y) Không có P(x, f(y)) P(z, g(w)) Không có 28 Điều cần nắm • Ý nghĩa của logic bậc nhất • Cú pháp của logic bậc nhất • Có thể biểu diễn một vấn đề dưới dạng logic bậc nhất • Chuyển đổi KB thành dạng mệnh đề • Hiểu được phép thế và phép đồng nhất 29 ... Knows(John,x) và Knows(y,z), ta có các phép thế θ = {y/John, x/z } hay θ = {y/John, x/John, z/John} • Phép đồng nhất đầu tiên tổng quát hơn cái thứ hai 24 Đồng nhất tổng quát nhất • g là phép đồng nhất tổng quát nhất (most general unifier - MGU) của ω1 và ω2 khi và chỉ khi với mọi phép đồng nhất s, tồn tại s’ sao cho ω1.s = (ω1.g)s’ và ω2.s = (ω2.g)s’ ω1 ω2 MGU P(x) P(A) {x/A} P(f(x), y, g(x)) P(f(x),... f(A), B) P(x, f(y), B) {y/A, x/y} = P(A, f(A), B) 22 Đồng nhất • Hai biểu thức ω1 và ω2 là đồng nhất được (unifiable) khi vào chỉ khi tồn tại thế s sao cho ω1s = ω2s • Gọi ω1 = x và ω2 = y, dưới đây là các phép đồng nhất: s ω 1s ω 2s {y/x} X x {x/y} Y y {x/f(f(A)), y/f(f(A))} f(f(A)) f(f(A)) {x/A, y/A} A A 23 Đồng nhất tổng quát nhất • Để đồng nhất Knows(John,x) và Knows(y,z), ta có các phép thế θ =... Thuật toán đồng nhất unify(Expr x, Expr y, Subst s){ if s = fail, return fail else if x = y, return s else if x là một biến, return unify-var(x, y, s) else if y là một biến, return unify-var(y, x, s) else if x là một vị từ hay một hàm, if y có cùng toán tử, return unify(args(x), args(y), s) else return fail else ; x và y là các danh sách return unify(rest(x), rest(y), unify (first( x), first( y), s)) return... fail; } 26 Thủ tục đồng nhất biến Thế vào var và x khi còn có thể, tiếp đó thêm vào ràng buộc mới unify-var(Variable var, Expr x, Subst s){ if var đã được gắn với giá trị val trong s, return unify(val, x, s) else if x được gắn với giá trị val trong s, return unify(var, val, s) else if var xuất hiện đâu đó trong x, return fail else return add({var/x}, s) } 27 Một số ví dụ về đồng nhất ω1 ω2 MGU A(B,C)... and; trả về các mệnh đề P(z) ∨ (Q(z,w) ∧ R(w,z)) ⇒ {P(z) ∨ Q(z,w), P(z) ∨ Q(w,z)} 5 Đổi tên các biến trong từng mệnh đề {P(z) ∨ Q(z,w), P(z) ∨ Q(w,z)} ⇒ {P(z1) ∨ Q(z1,w1), P(z2) ∨ Q(w2,z2)} 19 Hợp giải Bậc nhất P(A) Tam đoạn luận: Mọi người đều chết Socrates là người Q(A) Socrates chết ∀x, P(x) Q(x) ∀x, ¬P(x) ∨ Q(x) P(A) Q(A) ¬P(A) ∨ Q(A) P(A) Q(A) Tương đương theo định nghĩa của phép Suy ra Điều chủ... theo” • Không thể tính toán trực tiếp bằng cách liệt kê khái niệm • Do đó, ta sẽ làm theo cách chứng minh • Trong FOL, nếu KB suy dẫn được S thì có một tập hữu hạn các chứng minh của S từ KB 14 Hợp giải Bậc nhất P(A) Tam đoạn luận: Mọi người đều chết Socrates là người Q(A) Socrates chết ∀x, P(x) Q(x) ∀x, ¬P(x) ∨ Q(x) P(A) Q(A) ¬P(A) ∨ Q(A) P(A) Q(A) Tương đương theo định nghĩa của phép Suy ra Hai vấn