12
 Lecture 6. PREDICATE CALCULUS (III)  NORMAL FORMS, RESOLUTION, LOGIC PROGRAMMING  NORMAL FORMS: FROM PROPOSITIONS TO PREDICATES (CÁC DNG CHUN: TCÁC MNH ĐỀ ĐẾN CÁC VT) Chúng ta đã nghiên cu dng chun cho các công thc logic mnh đề, cthlà dng chun hi CNF (Conjunctive Normal Form): Trong đó các p ij là các atom (mnh đề đơn gin) hoc là phđịnh ca nó.  Nếu các phép hi và tuyn là vô hn, thì công thc tương ng slà: hoc sdng các lượng t, (…) Tin xlí và dng câu chun Định nghĩa - Mt công thc được gi là dng tin chun hi PCNF (Prenex Conjunctive Normal Form) nếu nó có dng: Q 1 x 1 … Q n x n M Trong đó Q i là các lượng tM công thc phi lượng ttrong dng chun hi. Dãy các lượng tđược gi là tin t, và M được gi là ma trn. - Mt công thc được gi là dng câu mnh đề (hay ngn gn là “câu”) nếu nó có dng PCNF và tin tchlà các lượng t. Ví d:  xyz (P(x)(Q(x,y) M(z,,x))  N(x, y, z)) Định lý: Gisử φ là mt công thc đóng (không có biến tdo). Thì có tn ti công thc φ dng câu sao cho φ khtha khi và chkhi φ ’ khtha. Thtc to dng chun Thtc để to dng câu chun bao gm 2 bước: 1. Tìm dng có tin xlí tương đương (mà tính hp lđược vn bo toàn) 68

Logic-Bai6

Embed Size (px)

Citation preview

Page 1: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 1/12

Lecture 6. PREDICATE CALCULUS (III)

 NORMAL FORMS, RESOLUTION, LOGIC PROGRAMMING

 NORMAL FORMS: FROM PROPOSITIONS TO PREDICATES(CÁC DẠNG CHUẨN: TỪ CÁC MỆNH ĐỀ ĐẾN CÁC VỊ TỪ)

Chúng ta đã nghiên cứu dạng chuẩn cho các công thức logic mệnh đề, cụ thểlà dạng chuẩn hội CNF (Conjunctive Normal Form):

Trong đó các pij là các atom (mệnh đề đơn giản) hoặc là phủ định của nó. Nếu các phép hội và tuyển là vô hạn, thì công thức tương ứng sẽ là:

hoặc sử dụng các lượng tử ∀, ∃ (…)

Tiền xử lí và dạng câu chuẩn

Định nghĩa

- Một công thức được gọi là ở dạng tiền chuẩn hội PCNF (PrenexConjunctive Normal Form) nếu nó có dạng:

Q1x1… QnxnM

Trong đó Qi là các lượng tử và M công thức phi lượng tử trong dạng chuẩnhội.Dãy các lượng tử được gọi là tiền tố, và M được gọi là ma trận.

- Một công thức được gọi là ở dạng câu mệnh đề (hay ngắn gọn là “câu”)nếu nó có dạng PCNF và tiền tố chỉ là các lượng tử ∀.

Ví dụ:  ∀x∀y∀z (P(x)∧(Q(x,y)∨M(z,,x))∧ N(x, y, z))

Định lý: Giả sử φ  là một công thức đóng (không có biến tự do). Thì có tồn tại

công thức φ  ’ ở dạng câu sao cho φ  khả thỏa khi và chỉ khi φ  ’ khả thỏa.Thủ tục tạo dạng chuẩn

Thủ tục để tạo dạng câu chuẩn bao gồm 2 bước:1.Tìm dạng có tiền xử lí tương đương (mà tính hợp lệ được vẫn bảo toàn)

68

Page 2: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 2/12

2.Xóa các lượng tử ∃ khi sử dụng hàm Skolem (việc chuyển đổi này sẽkhông còn đảm bảo tính hợp lệ nữa nhưng nó vẫn bảo toàntính khảthỏa)

Các bước thực hiện thủ tục được mô tả bởi ví dụ

∀x(P(x) →Q(x)) →(∀xP(x) → ∀xQ(x)) Thay tên các biến bị buộc sao cho không có biến nào xuất hiện tronghai lượng tử khác nhau:

∀x(P(x) →Q(x)) →(∀yP(y) → ∀zQ(z)) Lược bỏ tất cả các phép nối không phải là ∨hoặc ∧

¬∀x(¬P(x)) ∨Q(x)) ∨¬∀yP(y) ∨∀zQ(z) Đưa phủ định vào bên trong (sử dụng ¬∀xΦ  ↔ ∃x¬Φ và ¬∃xΦ  ↔

∀x¬Φ ) ta được∃x(P(x)) ∧¬Q(x)) ∨∃y¬P(y) ∨∀zQ(z)

Kéo tất cả các lượng tử ra ngoài (sử dụng QxΦ  ∨ψ  ↔Qx(Φ∨ψ ) vàψ∧QxΦ  ↔Qx(ψ∧Φ ), trong đó Q là ∀ hoặc ∃ và x không tùy ýtrong ψ )

∃x∃y∀z((P(x)) ∧¬Q(x)) ∨¬P(y) ∨Q(z)Sử dụng các luật phân phối để chuyển phần ma trận sang CNF

∃x∃y∀z((P(x)∨¬P(y)∨(¬Q(z)) ∧(¬Q(x)∨¬P(y)∨Q(z)))

Một số thủ tục tạo dạng chuẩn khác

 Người ta có thể dùng nhiều thủ tục sau đây để tạo ra dạng tiền xử lí

1a ¬∀xΦ  ↔ ∃x¬Φ 2d ∃xΦ  ∨ψ  ↔ ∃x(Φ  ∨ψ )1b ¬∃xΦ  ↔ ∀x¬Φ 2e (ψ  → ∀xΦ ) ↔ ∀x(ψ  → Φ )2a ∀xΦ  ∧ψ  ↔ ∀x(Φ  ∧ψ ) 2f  (∀xΦ  → ψ ) ↔ ∃x(Φ  → ψ )2b ∀xΦ  ∨ψ  ↔ ∀x(Φ  ∨ψ ) 2g (ψ  → ∃xΦ ) ↔ ∃x(ψ  → Φ )2c ∃xΦ  ∧ψ  ↔ ∃x(Φ  ∧ψ ) 2h (∃xΦ  → ψ ) ↔ ∀x(Φ  → ψ )

(trường hợp 2a và 2h được giả thiết là x không tự do trong ψ .

Các hàm Skolem

 Nhiệm vụ của chúng ta là phải đánh giá các lượng tử tồn tại. Quy tắcSkolem được sử dụng cho mục đích này:

Gỉa sử ∃x là định lương tồn tại

Giả thiết rằng y1, y2,…, yn là tất cả các lượng tử mọi có mặt phía trước∃x và gỉa sử f  là một kí hiệu hàm mới có n đối.

Xóa đi kí hiệu ∃x và thay sự hiện diện của x bởi f (y1, y2,…, yn)

(Khi n = 0, f  tương ứng là hàm không đối, có nghĩa là một hằng.

69

Page 3: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 3/12

Kí hiệu hàm mới nhận được này được gọi là hàm Skolem.

Ví dụ 1

 Nhắc lại kết quả nhận được ở ví dụ trên là

∃x∃y∀z((P(x)∨¬P(y)∨(¬Q(z)) ∧(¬Q(x)∨¬P(y)∨Q(z)))Với quy tắc Skolem, chúng ta nhận được

∀z((P(a)∨¬P(b)∨(¬Q(z)) ∧(¬Q(a)∨¬P(b)∨Q(z)))

Ví dụ 2

∃x∀yP(x, y) → ∀y∃xP(x, y)

Dẫn đến

∃x∀y∀w∃z(P(x, y) →P(z, w))

∃x∀y∀w∃z(¬P(x, y) ∨P(z, w))Áp dụng quy tắc Skolem ta có

∀y∀w(¬P(x, f(x)) ∨P(g(x, w), w))

Điều kiện cần cho quy tắc Skolem

Ý tưởng này xuất phát từ việc phân tích tính khả thỏa:

 Nếu một công thức, chẳng hạn, ∀y1…∀yn∃xP(y1…yn, x) có mô hình:

M ╞   ∀y1…∀yn∃xP(y1…yn, x)

Thì với tất cả các bộ (c1…cn ) của các phần tử trong domain, có một phần tửc sao cho P(y1…yn, c) nhận chân trị đúng.

 Như vậy, có thể định nghĩa một hàm f sao cho  f (c1…cn ) = c.

Với định nghĩa này, người ta nhận được

 M ‘╞   ∀y1…∀ynP(y1…yn, f (y1…yn))

Trong đó M ‘ là mở rộng của M với sự phiên dịch của kí hiệu hàm mới f .

Rõ ràng là, Skolem hóa bảo toàn tính khả thỏa

Công thức xuất phát là khả tỏa khi và chỉ khi công thức nhận được sau khi Skolem hóa là khả thỏa.

Chú ý:

Khi chuyển từ P(y1…yn, x) sang P(y1…yn, f (y1…yn)) một số thông tin bị mất,đó là vì có nhiều c thỏa P(c1…cn, c) nhưng chỉ có một c được chọn để

 f (c1…cn ) = c. Nói cách khác, vị từ là n – n trong khi hàm là n – 1. Vì lí do

70

Page 4: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 4/12

này mà tính hợp lệ của công thức không được bảo toàn mà chỉ bảo toàn tínhkhả thỏa.

Câu (phép tính mệnh đề)

Định nghĩa:

Từ là một atom hoặc lả phủ định của atom.

Câu là một tập các từ 

Công thức là một tập các câu – một công thức như thế được xem là ở dạng câu.

Câu đơn vị là câu chỉ có một từ.

Sự tương ứng giữa CNF’s và các dạng câu là hiển nhiên.

Ví dụ:

(¬Q ∨¬P ∨Q) ∧(P ∨¬P ∨Q ∨P) tương ứng với {{¬Q, ¬P, Q}, {P, ¬P, Q}}

 Như vậy mỗi công thức mệnh đề sẽ có một dạng câu tương đương.

Chú ý:

Cho S và S’ là các tập câu. Viết S ≈ S’ nghĩa là S khả thỏa khi và chỉ khi S’khả thỏa.

Một số tính chất đơn giản

1. Nếu từ l xuất hiện trong S, còn l c không xuất hiện, thì S ≈  S’, trong đóS’ là S nhưng đã xóa đi l.

2. Nếu S chứa câu đơn vị { l } thì S ≈  S’, trong đó S’ là S nhưng đã xóa đitất cả các câu chứa l và và xóa luôn l c trong các câu còn lại.

3. Nếu cả l và l c∈ C thì S ≈  S’, trong đó S’ = S - { C }

4. Nếu C 1⊆ C 2 thì S ≈  S’, trong đó S’ = S - { C 2 }

5.S ≈  RU (S), trong đó U là tập các chữ mệnh đề và RU (S)nhận được từ S 

bằng cách thay mỗi một từ l mà chữ mệnh đề của nó có trong U bởi l c

.Quy tắc giải

Định nghĩa:

  Quy tắc giải được định nghĩa như sau;

71

Page 5: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 5/12

Cho C 1 , C 2 là các câu sao cho l ∈ C 1 l c∈ C 2 (C 1 , C 2 được gọi là cáccâu xung đột và xung đột trên các từ phần phụ l, l c; nếu l = P thì l c= ¬  P còn nếu l = ¬  P thì l c= P.

C, là lời giải của C 1 và, C 2 , là một câu

C = res(C 1 , C 2 ) = (C 1 – { l }) ∪ (C 2 – { l c }) 

C 1 và C 2 là các câu bố mẹ của C 

Định lí:

 Lời giải C là khả thỏa khi và chỉ khi các câu cha mẹ C 1 và C 2 khả thỏa(đồng thời)

Chứng minh:

 Nếu C1 và C2 là khả thỏa, lấy v là một đánh giá, nó làm cho C1 và C2

True.(a)  Nếu v(l) = F, thì một từ của C1 – { l } là true sẽ lám cho C1 true, mà từ

như vậy cũng làm cho C true.

(b) Nếu v(l) = T, thì v(lc) = F thì một từ của C2 – { lc } là true sẽ lám choC2 true, mà từ như vậy cũng làm cho C true.

 Nếu v là một đánh giá làm cho C true, thì có ít nhất một từ l1 ∈C là true theo nghĩa này. Nếu l1 là từ C1 – { l } thì nó làm cho C1 true. Cả llẫn lc đều không thuộc C. Lấy v1 là mở rộng của v với v1(lc) = T. Khi đó

cả C1 lẫn C2 trở nên true. Trường hợp l1 là từ C2 – { l } được chứng minhtương tự.

Thuật giải

Input: Tập các câu S

Output: return ‘Yes’ nếu S là khả thỏa, ngược lại là ‘No’

1.Bước khởi đầu: S0 = S

2.Repeat: Chọn hai câu xung đột C1 và C2 ∈ Si và

 Nếu C =E

(Empty clause = câu rỗng), dừng, S là không thỏa3.Xây dựng Si+1 = Si ∪C

 Nếu Si+1 = Si với tất cả các cách chọn câu xung đột có thể có, thìdừng, S là khả thỏa.

Ví dụ:

Xét tính khả thỏa của (¬P ∨¬Q ∨R) ∧(P) ∧(Q) ∧(¬R)

72

Page 6: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 6/12

 Giải:

Biểu thức trên có thể được viết lại như sau:

Việc chứng minh dựa vào thủ tục trên như sau:

Tính chất cần và đủ

Thủ tục giải có các tính chất cần và đủ như sau:

Cần. Nếu câu rỗng được dẫn xuất từ tập các câu S, thì S bất khả thỏa

 Đủ.  Nếu một tập các câu là bất khả thỏa thì câu rỗng có thể được dẫnxuất bằng thủ tục giải

Chú ý:

Thuật giải sẽ rất hiệu quả với các câu mệnh đề Horn. Với các câu tổngquát, độ phức tập là hàm mũ.

Các mô hình Herbrand

Cho S là tập các câu tính vị từ.Tập vũ trụ Herbrand của S, kí hiệu Hs, được xác định là tập các terms trêntoàn bộ các hằng và các kí hiệu hàm có mặt trong S.

(Nếu không có hằng nào trong S thì hãy sử dụng một hằng bất kỳ) .

Một chuyển đổi Herbrand của S là một chuyển đổi mà tại đó:

Miền (domain) là tập vũ trụ Herbrand Hs (miền cố định)

73

1.¬P ∨¬Q ∨R 2. P3. Q4.¬R ¬R 

1.¬P ∨¬Q ∨R giả thuyết2. P giả thuyết3. Q giả thuyết4.¬R giả thuyết

5. ¬Q ∨R res(1, 2)6. R res(3, 5)7. E (Empty clause) Vậy (¬P ∨¬Q ∨R) ∧(P) ∧(Q) ∧(¬R) không khả thỏa

Page 7: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 7/12

Mỗi một term được chuyển đổi chính là term trong Hs (chuyển đổi cốđịnh các term)

Các vị từ được phép chuyển đổi theo một cách nào đó (chuyển đổi biến của vị từ)

Cơ sở Herbrand, được kí hiệu là Bs, là tập tất cả các term (cơ bản) chúngcó thể được tạo ra bởi các vị từ trong S và các term trong Hs.

Ví dụ:

Gỉa sử S = {¬P(a, f(x, y)) ∨ P(b, f(x, y))}

Tập vũ trụ Herbran (tất cả các term trên toàn bộ a, b, f) là:

Hs = {a, b, f(a, a), f(a, b), f(b, a), f(b, b), f(a, f(a, a)), . . .}

Cơ sở Herbrand của nó (tất cả các công thức atom nhận được khi sử

dụng các term ở trên tring P(- , -)) làBs = {P(a, a), P(b, a), P(a, b), P(b, b), P(a, f(a, a)), P(b, f(a, a)), . . .}

Một chuyển đổi Herbrand cxó thể được xác định như tập con của Bs màtrong đó các công thức atom là true, có nghĩa là

{P(a, a), P(b, b), P(a, f(a, a)), P(b, f(a, a))}

(Chú ý rằng khi một tập con bất kỳ được lấy thì sẽ dẫn đến các phép biến đổikhác nhau)

Thủ tục bán quyết định cho tính hợp lệ

Điều quan trọng của phép biến đổi Herbarnd có thể thấy từ các định lí sau:

Định lí 1

 Cho S là tập các câu. S có mô hình khi và chỉ khi S có mô hình Herbrand 

Định lí 2

 Nếu tập các câu S bất khả thỏa thì một tập hữu hạn các câu cơ bản

(ground) của S cũng bất khả thỏa.Thủ tục bán xác định cho tính hợp lệ của các công thức:

- Lấy phủ định công thức

- Chuyển nó sang dạng câu

- Sinh ra một tập hữu hạn các câu cơ bản

74

Page 8: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 8/12

- Kiểm tra xem tập các câu cơ bản có bất khả thỏa không

Thuật giải

Mở rộng thuật giải cho các vị từ là quá phức tạp. Bước đầu tiên tươngđối dễ là phải tìm ra được các công thức cơ bản, có nghĩa là các công thứckhông biến.Định nghĩa:

Quy tắc thuật giải cơ bản được định xác định như sau:

Cho C 1 , C 2 là các câu sao cho l ∈ C 1 l c∈ C 2 (C 1 , C 2 được gọi là cáccâu xung đột và xung đột trên các từ phần phụ l, l c; nếu l = P thì l c= ¬  P còn nếu l = ¬  P thì l c= P.

C, là lời giải của C 1 và, C 2 , là một câu

C = res(C 1 , C 2 ) = (C 1 – { l }) ∪ (C 2 – { l c }) 

C 1 và C 2 là các câu bố mẹ của C 

Các kết quả sau phức tạp hơn đôi chút so với trường hợp mệnh đề.

Định lí (Điều kiện cần):

 Lời giải C là khả thỏa khi và chỉ khi các câu cha mẹ C 1 và C 2 khả thỏa(đồng thời)

Khi kết hợp định lí này với các kết quả tương ứng của phép tính mệnhđề và thủ tục bán quyết định về tính hợp lệ ở trên trong phép toán vị từ,chúng ta nhận được kết quả quan trọng sau đây:Định lí:

Thuật giải cơ bản là thủ tục phản luận cần và đủ cho phép tính vị từ.

Chú ý:

Thủ tục phản luận là thủ tục nó kiểm tra xêm liệu công thức A là hợp lí bằng cách xem xét tính khả thỏa phủ định của A và cố gắng phản luận nó (từ chốikết quả).

Hợp nhấtCác công thức có biến yêu cầu cơ cấu bổ trợ:

 Người ta phải dùng cách thay thế để hợp nhất các từ nào đó nhằm nhậnđược một cặp các từ bù nhau l và lc.

Ví dụ:

C1 = P(f(x), g(y)) ∨Q(x, y) và

75

Page 9: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 9/12

  C2 = ¬P(f(f(a)), g(z)) ∨Q(f(a), g(z))

Không có các từ xung đột cho C1 , C2. Nhưng nếu dùng phép thay thế

  σ = [f(a) | x, z | y] thì

  C1σ = P(f(f(a)), g(z)) ∨Q(f(a), z) vàC2σ = ¬P(f(f(a)), g(z)) ∨Q(f(a), g(z))

Có hai câu xung đột có thể giải để có

C = Q(f(a), z) ∨Q(f(a), g(z))

Với hai atom cho trước, một phép hợp nhất là cách thay thế làm cho chúngđồng nhất.

Phép hợp nhất tổng quát nhất MGU (Most General Unifier) là phép hợp nhất

σ sao cho một phép hợp nhất θ có thể nhận được từ σ bằng phép thay thếtiếp λ , có nghĩa là θ = σ λ .

Ví dụ:

Trong ví dụ trước σ = [f(a) | x, z | y] là MGU.

Một số phép hợp nhất khác là: [f(a)|x, a|y, a|z], [f(a)|x, f(a)|y, f(a)|z],[f(a)|x, g(b,f(a))|y, g(b, f(a))|z], ….

Cho trước hai atom A, A’ gọi k là vị trí bên trái nhất mà ở đó các chuỗiA và A’ khác nhau. Tập không giống nhau của A và A’ (nếu có) là tập {t, t’}

của các terms bắt đầu tại vị trí k trong A và A’ tương ứng.Thuật toán hợp nhất

Input: hai atóm khác nhau A và A’

Output: cho phép thay thế MGU σ khi mà A và A’ khả hợp nhất, ngoài racho trả lời bất khả hợp nhất.

Thủ tục:

1.Gỉa sử A0 = A và A’0 = A’

2.Gỉa sử {t , t’} tập không giốn nhau của Ai và A’i.-  Nếu một term của {t , t’} là một biến xi+1 và term khác là term ti+1 sao

cho xi+1 không có mặt trong ti+1, khi đó gỉa sử

σ i+1 = [ti+1 | xi+1], Ai+1 = Aiσ i+1, và A’i+1 = A’iσ i+1.

- Ngoài ra, dừng , kết luận: các terms không thể hợp nhất

76

Page 10: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 10/12

3. - Nếu Ai+1 = A’i+1, dừng,  kết luận: các terms có thể hợp nhất và σ 1…σ i+1 là MGU- Ngoài ra, i := I + 1 và lặp lại 2.

Thuật giải hợp nhất tổng quát

Quy tắc giải tổng quát:- Gỉa sử C1 và C2 là các câu không có biến.

Gỉa sử l ∈ C1 và lc ∈ C2 là các từ có thể được đồng nhất bởi một MGU σ . (C1, C2)được gọi là các câu xung đột và xung đột tại các từ bù nhau l, lc)

- C, là lời giải của C1 và C2, là câuC = Res(C1 , C2) = (C1σ - {lσ }) ∪ (C2σ - {lcσ })

- C1 , C2 là các câu cha mẹ của C

Ví dụ:

Giải:

77

1. ¬P(x) ∨Q(x) ∨R(x, f(x)) given2. ¬P(x) ∨Q(x) ∨S(f(x)) given3. T(a) given4. P(a) given5. ¬R(a, y) ∨T(y) given6. ¬T(x) ∨ ¬Q(x) given7. ¬T(x) ∨¬S(x) given

1. ¬P(x) ∨Q(x) ∨R(x, f(x)) given2. ¬P(x) ∨Q(x) ∨S(f(x)) given3. T(a) given4. P(a) given5. ¬R(a, y) ∨T(y) given6. ¬T(x) ∨ ¬Q(x) given7. ¬T(x) ∨¬S(x) given8. ¬Q(a) [a | x] do 3, 69. Q(a) ∨S(f(a)) [a | x] do 2, 4

10. S(f(a)) do 8, 911. Q(a) ∨R(a, f(a)) [a | x] do 1, 412. R(a, f(a)) do 8, 1113. T(f(a)) [f(a) | y] do 5, 1214. ¬S(f(a)) [f(a) | x] do 7,1315. do 10, 14

Page 11: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 11/12

Tính chất cần và đủ

 Bổ đề nâng cao:Gỉa sử C 1’  và C 2’  là đối tượng cơ 

bản của C 1 và C 2 tương ứng. Gỉa sử 

C ’ 

là một lời giải cơ bản của C 1’ 

vàC 2’  nhận được khi giải từ l. Khi đó cómột lời giải C của C 1 và C 2 sao choC ’ là đối tương cơ bản của C.(xem hình vẽ)

Lập trình logic

Thông thường chương trình bao gồm các câu Horn có dạng sau:

(1) (Q)

(2) P1 ∧… ∧Pn →Q (tương đương với ¬P1 ∨… ∨¬Pn ∨Q)(3) ¬(P1 ∧… ∧Pn) (tương đương với ¬P1 ∨… ∨¬Pn )

(1) và (2) được hiểu là các lệnh của chương trình (các giả tuyết đã cho) vàngười ta quan tâm đến việc xem xét liệu công thức truy vấn dạng P1 ∧… ∧Pn suy ra được từ các giả thuyết hay không.

Cách giải là: thêm phủ định truy vấn vào chương trình và chỉ ra rằng kết quả là một tập các câu Horn bất khả thỏa.

 Nếu như vậy, thì kết luận rằng công thức truy vấn của chúng ta có thể đượcdẫn xuất từ chương trình. Lập trình logic; Prolog

 Ngôn ngữ lập trình kiểu như Prolog sẽ sử dụng phương pháp riêng để tìmcâu rỗng , (được biết như là cách giải SLD = known as SLD-resolution)

Các câu được lấy từ trên xuốn, sau danh sách các câu đã nhận được;

Mục tiêu được phân tích (bởi hầu hết các lệnh của Prolog) khi lấy mụctiêu con ở tận trái.

Cuối cùng, người ta sử dụng kiểu phủ định – thất bại , cụ thể là truyvấn sai nếu như nó sai được dẫn xuất từ chương trình.

78

C1,C

2

C1

’,C2

C

C’

Resolution

GroundResolution

InstanceInstance

Page 12: Logic-Bai6

5/10/2018 Logic-Bai6 - slidepdf.com

http://slidepdf.com/reader/full/logic-bai6 12/12

Ví dụ (Lập trình Prolog)

 

79

s(a), n(b)

+(a)

m(a)Query

s(a), n(a)

+(b)

l(a),n(b)

+(c)

Q(Y),r(a,Y),n(b)

+(d)

l(a),n(a)

+(c)

Q(Y),r(a,Y),n(a)

+(d)

fail No fit

fail No fit

P(Y),r(a,Y),n(b)+(e)

P(Y),r(a,Y),n(a)+(e)

r(a,b),n(b)+(f)

r(a,b),n(a)+(f)

n(b)+(g)

n(a)+(g)

fail No fit

Succeed+(i)