1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài Giảng Logic Bậc Nhất - First Order Logic

29 1.4K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Ngày đăng: 18/10/2015, 23:18

TỪ KHÓA LIÊN QUAN

w