Tải bản đầy đủ (.docx) (60 trang)

TÌM HIỂU về lập LUẬN SUY DIỄN đối với CHƯƠNG TRÌNH LOGIC PHỎNG đoán có CHỨA RÀNG BUỘC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (473.28 KB, 60 trang )

1

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THỊ GIA BẢO

TÌM HIỂU VỀ LẬP LUẬN SUY DIỄN ĐỐI VỚI
CHƯƠNG TRÌNH LOGIC PHỎNG ĐOÁN CÓ
CHỨA RÀNG BUỘC

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

Huế, 2016
1


2

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THỊ GIA BẢO

TÌM HIỂU VỀ LẬP LUẬN SUY DIỄN ĐỐI VỚI
CHƯƠNG TRÌNH LOGIC PHỎNG ĐOÁN
CÓ CHỨA RÀNG BUỘC
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH


MÃ SỐ: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. TRƯƠNG CÔNG TUẤN

Huế, 2016
2


3

LỜI CAM ĐOAN
Tôi cam đoan các kết quả nghiên cứu đưa ra trong luận văn này dựa
trên các kết quả thu được trong quá trình nghiên cứu của riêng tôi, không sao
chép bất kỳ kết quả nghiên cứu nào của các tác giả khác. Nội dung của luận
văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp
chí được liệt kê trong danh mục các tài liệu tham khảo.
Học viên
Nguyễn Thị Gia Bảo

3


4

LỜI CẢM ƠN
Lời đầu tiên, tôi xin chân thành cảm ơn Thầy Trương Công Tuấn đã
hướng dẫn, định hướng và luôn động viên để tôi hoàn thành tốt luận văn này.

Xin cảm ơn Quý Thầy, Cô giáo Khoa Công nghệ thông tin Trường Đại học
Khoa học – Đại học Huế đã truyền đạt nhiều kiến thức sâu sắc, quý báu về các
môn học trong quá trình giảng dạy và các nội dung hoàn thiện luận văn.
Xin cảm ơn các bạn học viên lớp cao học Khoa học máy tính khóa
2014–2016 và các đồng nghiệp đã luôn bên cạnh, động viên tôi trong suốt
thời gian học tập và thực hiện luận văn.
Cuối cùng, tôi xin được bày tỏ lòng biết ơn sâu sắc tới toàn thể gia
đình, bạn bè đã luôn động viên, khích lệ tinh thần để tôi có đủ nghị lực hoàn
thành luận văn này.
Xin chân thành cảm ơn tất cả!
Huế, tháng 7 năm 2016

4


5

MỤC LỤC
TRANG PHỤ BÌA
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC THUẬT NGỮ
CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC HÌNH VẼ

5


6


DANH MỤC CÁC THUẬT NGỮ
Chương trình logic

Logic program

Chương trình logic nền

Ground logic program

Cơ sở Herbrand

Herbrand base

Lập trình logic

Logic programming

Câu trả lời phỏng đoán

Abdcateuctive answer

Câu trả lời phỏng đoán với ràng buộc

Abductive answer with contrains

Literal âm

Negative literal


Mô hình bền vững

Stable model

Mô hình nhỏ nhất

Least model

Ngữ nghĩa mô hình bền vững

Stable model semantics

Nguyên tố

Atom

Quy tắc

Ruler

Vị từ

Predicate

Vũ trụ Herbrand

Herbrand universe

6



7

CÁC CHỮ VIẾT TẮT

ALP

Abductive Logic Programming

CLP

Contraint Logic Programming

ALPC

Abductive Logic Programming with
contraints

7


8

DANH MỤC HÌNH VẼ

8


9


PHẦN MỞ ĐẦU
Trong suốt những thập kỷ qua, đã có nhiều nghiên cứu về các vấn đề
lập luận suy diễn đối với chương trình logic. Lập trình logic chủ yếu dựa trên
ý tưởng lập trình khai báo, ở đó các chương trình logic không được tạo ra từ
các câu lệnh cũng như từ các hàm mà được tạo ra chủ yếu dựa trên tập các vị
từ. Tuy nhiên, hiện nay lập trình logic đã bộc lộ những hạn chế nhất định và
không thể giải quyết đối với các bài toán phức tạp trong thực tế. Đã có nhiều
công trình nghiên cứu nhằm mở rộng lập trình logic, trong số đó – Lập trình
logic phỏng đoán (ALP - Abductive Logic Programming) là một hướng
nghiên cứu được nhiều nhà khoa học quan tâm. ALP được bắt nguồn từ sự
phỏng đoán, phỏng đoán là một hình thức suy luận để giải thích cho các quan
sát, xuất phát từ một cơ sở tri thức T và một quan sát Q để tìm các giải thích
có thể cho Q dựa theo một tập vị từ đặc biệt được gọi là các vị từ phỏng đoán
(abducible predicate). Trong ALP hình thành nên một cú pháp mới của
chương trình logic, được định nghĩa bởi một bộ ba <P, A, IC>, trong đó P là
một chương trình logic thông thường, A là một tập hợp các vị từ và được gọi
là các vị từ phỏng đoán, và IC là một tập các ràng buộc toàn vẹn. ALP là một
khuôn khổ biểu diễn tri thức cấp cao, cho phép giải quyết các bài toán dựa
trên lập luận phỏng đoán.
Hiện nay, xuất phát từ các nhu cầu của thực tiễn, ALP đã được nghiên
cứu mở rộng để cho phép các mệnh đề của chương trình logic trong ALP có
thể có các ràng buộc (ALPC – Abductive Logic Programming with
Contraints). ALPC thường được ứng dụng để giải quyết các bài toán trong
Chuẩn đoán, Lập kế hoạch, Xử lý ngôn ngữ tự nhiên, Học máy,…


10

Luận văn nghiên cứu về lập luận suy diễn đối với chương trình logic
phỏng đoán có chứa ràng buộc. Những nội dung nghiên cứu của luận văn có ý

nghĩa khoa học về mặt lý thuyết cũng như ứng dụng trong thực tiễn.
Cấu trúc luận văn gồm phần mở đầu, ba chương nội dung, phần kết
luận và tài liệu tham khảo.
Chương 1 trình bày về ngôn ngữ logic bậc nhất, cú pháp và ngữ nghĩa của
chương trình logic. Trên cơ sở đó trình bày lập luận suy diễn trong lập trình logic.
Chương 2 trình bày trình bày về cú pháp, câu trả lời phỏng đoán của
chương trình logic phỏng đoán và chương trình logic phỏng đoán có chứa
ràng buộc.
Chương 3 trình bày thủ tục chứng minh CIFF – là một phương pháp để trả
lời câu truy vấn đối với các chương trình logic phỏng đoán có chứa ràng buộc.
Chương 3 cũng trình bày tổng quan về hệ thống CIFF, tiến hành việc cài đặt
một số bài toán minh họa bằng hệ thống CIFF và thực thi bằng phần mềm
SWI-Prolog.
Phần kết luận nêu những kết quả đã đạt được và hướng phát triển của
luận văn.
Do thời gian có hạn và bản thân chỉ mới bước đầu nghiên cứu về lĩnh
vực này nên không thể tránh khỏi những thiếu sót, kính mong sự giúp đỡ và
góp ý thêm của quý Thầy, Cô và các bạn.


11

CHƯƠNG 1 TỔNG QUAN VỀ CHƯƠNG TRÌNH LOGIC
Chương 1 trình bày về cú pháp và ngữ nghĩa của chương trình logic.
Đây là những kiến thức cơ sở làm tiền đề cho các nghiên cứu ở các chương
tiếp theo.
1.1. Các khái niệm cơ sở
Phần này trình bày một số khái niệm thường được dùng trong logic bậc
nhất, khái niệm đầu tiên là bộ ký tự, được định nghĩa như sau:
Định nghĩa 1.1(Bộ ký tự) Bộ ký tự bao gồm 8 lớp ký hiệu sau:

1.

Hằng, thường ký hiệu là các chữ cái thường a, b, c,...

2.

Biến, thường ký hiệu bởi các chữ cái in hoa X, Y, Z,...

3.

Các ký hiệu hàm, thường ký hiệu bởi f, g, h,...

4.

Các ký hiệu vị từ, thường ký hiệu bởi p, q, r,...

5.

Các hằng vị từ: true, false.

6.

Các ký hiệu kết nối:

¬

(phủ định),




(tuyển),



(hội),

¬

(suy ra),



(tương đương).
7.

Các ký hiệu lượng từ: ∀ (với mọi), ∃ (tồn tại).

8.

Dấu ngoặc đơn trái (, dấu ngoặc đơn phải ), dấu phẩy ,.
Mỗi ký hiệu hàm hoặc hoặc ký hiệu vị từ thường có kèm theo một số tự
nhiên để chỉ số các đối số tham gia cùng với ký hiệu hàm hoặc ký hiệu vị từ
đó, gọi là ngôi của chúng.
Định nghĩa 1.2 (Hạng thức) Gọi A là bộ ký tự. Hạng thức được định nghĩa đệ
qui như sau:
(i) Mỗi hằng c trong A là một hạng thức,
(ii) Mỗi biến V trong A là một hạng thức,
(iii)

Nếu f là ký hiệu hàm n ngôi trong A và t1,..,tn là các hạng thức


thì f(t1,...,tn) là một hạng thức,


12

(ii) Hạng thức chỉ được sinh ra bởi các quy tắc trên.

Một hằng được xem là ký hiệu hàm 0-ngôi. Hạng thức nền là hạng thức
không chứa biến.
Định nghĩa 1.3 (Nguyên tố) Một nguyên tố có dạng p(t1,…,tn), trong đó p là
ký hiệu vị từ n-ngôi (ký hiệu p/n) và các đối t1,...,tn là các hạng thức. Nguyên
tố nền là nguyên tố không chứa biến.
Ví dụ 1.1 Xét nguyên tố father(Hung,Dung), trong đó vị từ father là vị từ 2ngôi chỉ mối quan hệ bố con,hạng thức Hung, Dung là các hằng. Nguyên tố
này có ý nghĩa là Hoa là bố của Dung và là nguyên tố nền.
Định nghĩa 1.4 (Literal) Literal là một nguyên tố (gọi là literal dương) hoặc
phủ định của nguyên tố (literal âm). Với p là một nguyên tố, literal âm của p
được ký hiệu ¬ p.
Ví dụ 1.2 Xét nguyên tố father(Hung,Dung) ở ví dụ 1.1, father(Hung,Dung)
là literal dương và ¬father(Hung,Dung) là literal âm.
1.2. Chương trình logic
Trong phần này sẽ xem xét cú pháp và ngữ nghĩa của hai lớp chương
trình logic: chương trình logic xác định và chương trình logic thông thường.
1.2.1. Chương trình logic xác định
1.2.1.1. Cú pháp
Định nghĩa 1.5 (Mệnhđề xác định) Mệnh đề xác định là công thức có dạng:
∀X1...∀Xk(p ←q1,..., qn)

(1)


Trong đó n≥ 0, p, qi là các nguyên tố, p được gọi là đầu và q1, ..., qn
được gọi là thân của mệnh đề, dấu phẩy ký hiệu thay cho phép hội (∧), X1...Xklà
các biến xuất hiện trong p, q1, ..., qn.
Ta thường viết mệnh đề (1) dưới dạng:
p ←q1,..., qn

(2)


13

Ngữ nghĩa của mệnh đề (1) là: Nếu tất cả các nguyên tố qi là đúng thì p
cũng đúng.
Trong mệnh đề (1), nếu n = 0 thì được gọi là mệnh đề đơn vị, nghĩa là
mệnh đề có dạng: p← , đó là mệnh đề với thân rỗng. Ngữ nghĩa của mệnh đề đơn
vị là với mọi phép thay thế các biến của p bởi các hằng thì p luôn luôn đúng.
Định nghĩa 1.6 (Chương trình logic xác định) Chương trình logic xác định là
một tập hữu hạn khác rỗng các mệnh đề xác định.
Ví dụ 1.5 Cho chương trình logic xác định P gồm các mệnh đề:
r1 : even(0) ←
r2 : even(s(s(X))) ←even(X)
Trong chương trình này thì s là một hàm 1-ngôi, được xác định bởi s(X)
= X +1 với X , nguyên tố even(X) để chỉ X là một số chẵn. Mệnh đề đơn
vị r1even(0) có ý nghĩalà 0 một số chẵn và r2 là mệnh đề với ý nghĩa là nếu X
là số chẵn thì s(s(X)) cũng là số chẵn.
Định nghĩa 1.7 (Vũ trụ/Cơ sở Herbrand) Cho P là chương trình logic xác định.


Vũ trụ Herbrand của P, ký hiệu UP, là tập các hạng thức nền được xây dựng




từ các hằng và các ký hiệu hàm trong P.
Cơ sở Herbrand của P, ký hiệu BP, là tập các nguyên tố nền được xây dựng từ các
ký hiệu vị từ trong P có đối là các hạng thức nền lấy từ vũ trụ Herbrand UP.
Vũ trụ Herbrand, cơ sở Herbrand của chương trình logic xác định P
luôn luôn là những tập vô hạn nếu P có chứa ký hiệu hàm.
Ví dụ 1.6 Xét chương trình logic xác định P ở ví dụ 1.5:
Vũ trụ Herbrand của P là: UP= {0, s(0), s(s(0)), s(s(s(0))),...}
Cơ sở Herbrand của P là:
BP = {even(0), even(s(s(0)), even(s(s(s(0))),...}
Trong trường hợp chương trình logic xác định không chứa ký hiệu hàm
thì vũ trụ Herbrand, cơ sở Herbrand đều là những tập hữu hạn.


14

1.2.1.2. Ngữ nghĩa chương trình logic xác định
Định nghĩa 1.8 (Thể hiện Herbrand, mô hình Herbrand) Cho P là chương
trình logic xác định.


Một thể hiện Herbrand của P là một tập con tùy ý của cơ sở Herbrand BP của



P.
Một mô hình Herbrand của P là một thể hiện Herbrand I của P sao cho mọi




mệnh đề của P đều đúng trong thể hiện I.
Mô hình Herbrand của P được gọi là mô hình nhỏ nhất nếu nó được bao hàm
trong mọi mô hình của P.
Ví dụ 1.8 Xét trở lại chương trình logic xác định P ở ví dụ 1.5:
r1 : even(0) ←
r2 : even(s(s(X))) ←even(X)
Xét các thể hiện Herbrand:
I1 ={even(0)}
I2 = {even(0), even(s(0))}
I3 = {even(sn(0)) | n  {0, 2, 4,…}}
I4 = BP
Thể hiện I1 không phải là mô hình của P vì mặc dù I1 là mô hình của
mệnh đề even(0) nhưng I1 không phải là mô hình của mệnh đề r2 vì tồn tại mệnh
đề nền even(s(s(0))) ←even(0) của r2 mà I1 không phải là mô hình của mệnh đề
nền này. Tương tự, I2 cũng không phải là mô hình của P vì mệnh đề tồn tại mệnh
đề nền:
even(s(s(s(0)))) ←even(s(0))
của r2 mà I2 không phải là mô hình của nó.Tuy nhiên, I3 là mô hình của
P. Ta có I3 là mô hình của r1. I3 cũng là mô hình của r2. Thật vậy, xét mệnh đề:
even(s(s(t)))) ←even(t)


15

là một hiện hành nền nào đó của mệnh đề r2, trong đó t∈UP. Rõ ràng
mệnh đề even(s(s(t))) ←even(t) đúng vì even(t) và even(s(s(t)))) đều thuộc I3.
Vậy I3 là mô hình của P. Ta cũng có ngay I4 là mô hình của P.
Ví dụ 1.9 Cho chương trình logic xác định P gồm các mệnh đề:
r1 : happy(X)←parent(X,Y)




newborn(Y)

r2 : parent(X,Y)← father(X,Y)
r3 : parent(X,Y) ←mother(X,Y)
r4 : father(Khoa,Mai)←
r5 : newborn(Mai) ←
Xét một số thể hiện Herbrand của P:
I1 ={newborn(Khoa),happy(Khoa)}
I2= {newborn(Mai), happy(Mai), parent(Khoa,Mai)}
I3= {newborn(Mai), father(Khoa,Mai), mother(Khoa,Mai),
parent(Khoa,Mai), happy(Khoa)}
I1 và I2 đều không phải là mô hình của P vì tồn tại mệnh đề
father(Khoa,Mai) của r4 không đúng trong I1và I2. Tuy nhiên, I3 là mô hình
của P vì mọi mệnh đề của P đều đúng trong I3.
Định nghĩa 1.9 (Ngữ nghĩa chương trình logic xác định) Cho P là chương
trình logic xác định, ngữ nghĩa của P là mô hình nhỏ nhất của P, ký hiệu MP.
Mô hình nhỏ nhất MP có thể xây dựng bằng cách dùng toán tử hệ quả
trực tiếp. Ta có định nghĩa sau:
Định nghĩa 1.10 (Toán tử hệ quả trực tiếp) Cho P là chương trình logic xác
định. Ánh xạ TP:

2 BP → 2 BP được xác định như sau: Với mỗi I ∈ 2 BP ,

TP(I) = { A BP | ∃ mệnh đề nền A←A1,…, Ancủa P và {A1,…, An} ⊆I }


16


Trong đó

2 BP là tập các tập con của cơ sở Herbrand BP. TP được gọi là

toán tử hệ quả trực tiếp trên

2 BP .

Định lý 1.1 [2] Toán tử TP đơn điệu theo quan hệ bao hàm và có điểm bất
động nhỏ nhất. Hơn nữa, điểm bất động nhỏ nhất đó cũng chính là mô hình
nhỏ nhất của chương trình logic xác định P.
Định lý 1.2 [2] Cho P là chương trình logic xác định. Mô hình nhỏ nhất
củaPlà giới hạn của dãy TP↑n,n∈, ký hiệu TP↑ω, trong đó:
TP↑ 0 = ∅, TP↑ (i + 1) = TP(TP↑i)
Ví dụ 1.10 Xét chương trình logic P ở Ví dụ 1.5:
r1 : even(0) ←
r2 : even(s(s(X))) ←even(X)
Áp dụng Định lý 1.2 ở trên ta tính được:
Ta có:
TP↑n = ∅
TP↑ 1 = {even(0)}
TP↑ 2 = {even((s(s(0))))}

TP↑ω = {even(sn(0)) | n∈ {0, 2, 4,…}}
Ví dụ 1.11 Xét chương trình logic sau:
path(X,Y) ← edge(X,Y)
path(X,Y) ← edge(X,Z) ∧ path(Z,Y)
edge(1,2), edge(2,3), edge(3,4), edge(4,5)
Mô hình nhỏ nhất (MP) của P được tìm qua các bước lặp sau:

I1 = ∅
I2 = Tp(I1) = {edge(1,2), edge(2,3), edge(3,4), edge(4,5)}


17

I3 = Tp(I2) = I2 ∪{path(1,2), path(2,3), path(3,4), path(4,5)}
I4 = Tp(I3) = I3 ∪{path(1,3), path(2,4), path(3,5)}
I5 = Tp(I4) = I4 ∪{path(1,4), path(2,5)}
I6 = Tp (I5) = I5 ∪{path(1,5)}
I7 =Tp(I6) =I6 ∪∅= I6
Vậy mô hình nhỏ nhất của P chính là MP = .
1.2.1.3. Lập luận suy diễn trong chương trình logic xác định
Vấn đề ta quan tâm là làm thế nào xác định được các nguyên tố nền là
hệ quả logic (nghĩa là được suy diễn logic) từ các quy tắc của chương trình
logic xác định đã cho. Điều này được thể hiện qua kết quả sau:
Định lý 1.3 [2] Mô hình nhỏ nhất MP của chương trình logic xác định P là tập
các nguyên tố nền mà là hệ quả logic của P. Nghĩa là:
MP = {A∈BP |P

A}

Đối với chương trình logic xác định, ta thường dùng giả thiết thế giới
đóng (CWA – Closed World Assumption) sau đây: nếu một nguyên tố nền A
không thể suy diễn logic từ chương trình logic xác định P thì ¬ A là đúng. Vì
vậy, từ định lý trên ta có thể kết luận về giá trị chân lý của nguyên tố nền: nếu
A∈MP thì A được xem là đúng, ngoài ra A là sai. Điều này có thể biểu diễn bởi
quy tắc suy diễn sau:
P A
¬A


(CWA )

Ví dụ1.12 Xét chương trình logic ở ví dụ 1.11, tất cả các nguyên tố nền không
thuộc mô hình nhỏ nhất MP = {edge(1,2), edge(2,3), edge(3,4), edge(4,5),
path(1,2), path(2,3), path(3,4), path(4,5), path(1,3), path(2,4), path(3,5),
path(1,4), path(2,5)} đều được xem là sai, chẳng hạn path(2,1) là sai.
1.2.2. Chương trình logic thông thường
Các chương trình logic xác định biểu diễn tri thức dương, các mệnh đề


18

trong chương trình mô tả các đối tượng xác định và mối quan hệ giữa chúng.
Các quan hệ này được thể hiện rõ trong mô hình nhỏ nhất - chứa các nguyên
tố nền là hệ quả logic của chương trình. Đối với chương trình logic thông
thường, khi các mệnh đề có chứa phủ định ở thân thì ngữ nghĩa của nó trở nên
phức tạp hơn nhiều. Lúc này chương trình có thể không có mô hình nhỏ nhất
nhưng tồn tại nhiều mô hình cực tiểu.
Ví dụ 1.13 Chẳng hạn, xét chương trình logic P gồm các mệnh đề sau:
p(X) ←r(X) ∧¬q(X)
q(X) ←r(X) ∧¬p(X)
r(1) ←
Chương trình này chỉ có hai mô hình cực tiểu là S1 = {q(1), r(1)}, S2 =
{p(1), r(1)} và không có mô hình nhỏ nhất vì

S1 ⊄ S2 và S2 ⊄ S1 .

1.2.2.1. Cú pháp và ngữ nghĩa
Định nghĩa 1.11(Chương trình logic thông thường) Chương trình logic thông

thường là một tập hữu hạn khác rỗng các mệnh đề có dạng:
p ←q1, ..., qn

(1)

trong đó n≥ 0, p là nguyên tố, qi là các literal.
Từ đây về sau ta gọi chương trình logic thông thường là chương trình logic.
Để giải quyết vấn đề ngữ nghĩa của chương trình logic thông thường
(có chứa phủ định), đã có nhiều tiếp cận khác nhau, trong đó thường sử dụng
tiếp cận ngữ nghĩa mô hình bền vững [4]. Việc xác định mô hình bền vững sẽ
được thực hiện nhờ vào một phép biến đổi, được gọi là phép biến đổi Gelfond
– Lifschitz. Ta có định nghĩa sau:
Định nghĩa 1.12 (Phép biến đổi Gelfond - Lifschitz) [3] Gọi ground(P) là
chương trình nhận được từ chương trình logic P bằng cách thay thế các biến


19

trong mọi mệnh đề của P bởi các hằng trong P. Đối với mọi thể hiện M của
ground(P), ký hiệu PM là chương trình nhận được từ ground(P) bằng cách loại bỏ:
1. Các quy tắc có literal âm ¬B trong thân của nó, với B∈M.
2. Tất cả literal âm trong thân của các quy tắc còn lại.

Rõ ràngPM là chương trình không có phủ định, nó là chương trình logic
xác định, vì vậy PM có mô hình nhỏ nhất.
Ví dụ 1.14 Cho P là chương trình logic:
a ←¬b
b ←¬a
c ← a ∧¬b
Bây giờ, P có hai mô hình bền vững: M1 = {a, c} và M2 = {b}.

Thu gọn

P M1

là tập các quy tắc:

a←
c←a
và mô hình nhỏ nhất của nó chính là {a,c}.
Thu gọn

PM2

là tập quy tắc:

b←
và mô hình nhỏ nhất của nó chính là {b}.
Tập M3 = {a, b, c} là một mô hình của P theo nghĩa thông thường,
nhưng nó không bền vững vìmô hình nhỏ nhất của

P M 3 là tập rỗng.

Định nghĩa 1.13 (Mô hình bền vững) Tập M các nguyên tố được gọi là mô hình
bền vững của chương trình logic P nếu M là mô hình nhỏ nhất của PM.
Định lý 1.4 [3] Cho P là chương trình logic. Mọi mô hình bền vững của P đều
là mô hình cực tiểu của P.
Các mô hình bền vững là sự tổng quát hóa ngữ nghĩa của chương trình


20


logic xác định, điều này được thể hiện bởi kết quả sau:
Định lý 1.5 [3] Đối với chương trình logic xác định thì mô hình bền vững
chính là mô hình nhỏ nhất của nó.
1.2.2.2. Lập luận suy diễn trong chương trình logic thông thường
Bởi vì một chương trình logic có thể có một hoặc nhiều hoặc không có
mô hình bền vững. Vấn đề đặt ra là cách thức suy luận từ P sẽ được xác định
như thế nào. Đối với một mô hình bền vững cụ thể, một nguyên tố nền a được
xem là đúng nếu a∈M và sai nếu a∉M. Điều này thường được mở rộng để suy
luận từ tất cả mô hình bền vững của P theo hai dạng đối ngẫu nhau sau đây:


Lập luận bất chấp (Brave Reasoning): Một nguyên tố nền a là hệ quả bất
chấp (brave consequence) của P, ký hiệu ⊨b nếu a thuộc vào một mô hình



bền vững M nào đó của P.
Lập luận thận trọng (Cautious Reasoning) Một nguyên tố nền a là hệ quả
thận trọng (brave consequence) của P, ký hiệu ⊨cnếu a thuộc mọi mô hình
bền vững M của P.
Ví dụ 1.16 Xem chương trình logic P:
p(a)
r(X) ←p(X), ¬q(X)
P có 2 mô hình cực tiểu là M1 = {p(a), r(a)} và M2 = {p(a), q(a)} và chỉ
có M1 là mô hình bền vững của P. Lúc đó P ⊨br(a) và P ⊨cr(a) vì r(a) đúng
trong mọi mô hình bền vững. Tuy nhiên với P’ = P∪{q(a)} thì cả hai
P’⊨br(a) và P’⊨cr(a) đều không thỏa mãn vì r(a) là sai trong mô hình bền
vững duy nhất của {p(a), q(a)} của P’.
1.3 Tiểu kết Chương 1

Chương một đã trình bày tổng quan về chương trình logic gồm cú pháp
và ngữ nghĩa của chương trình logic. Các ví dụ minh họa chi tiết nhằm làm rõ
các khái niệm. Trong chương hai sẽ trình bày chi tiết về cú pháp và câu trả lời
phỏng đoán của chương trình logic phỏng đoán có chứa ràng buộc.


21

CHƯƠNG 2 CHƯƠNG TRÌNH LOGIC PHỎNG ĐOÁN
CÓ CHỨA RÀNG BUỘC
Chương này trình bày về cú pháp và câu trả lời phỏng đoán của chương
trình logic phỏng đoán có chứa ràng buộc. Trước hết chương 2 sẽ trình bày về
chương trình logic phỏng đoán.
2.1. Giới thiệu về lập luận phỏng đoán trong lập trình logic
Phỏng đoán là một dạng suy luận dựa vào một số quy tắc logic và một
quan sát Qcho trước nhằm mục đích tìm một giải thích cho quan sát đó bằng
cách sử dụng các quy tắc logic đã cho. Phỏng đoán được sử dụng rộng rãi
trong các lập luận thông thường, ví dụ trong chẩn đoán, suy luận từ ảnh
hưởng gây ra. Xem ví dụ sau đây:
Ví dụ 2.1 Cho chương trình logic P:
bị_cảm(X) ←đau_đầu(X) ∧sốt_cao(X)
bị_cảm(X) ←đi_mưa (X)
←đi_mưa (X)
Nguyên nhân X bị cảm có thể là do X đi ra ngoài bị mắc mưa hoặc cũng
có thể là do X bị sốt cao và đau đầu. Ở đây, ta có ràng buộc toàn vẹn ←
đi_mưa(X) nên quy tắc thứ 2 bị sai, nó không thỏa mãn ràng buộc toàn vẹn
này. Chính vì vậy, nguyên nhân X bị cảm ở đây là do bị sốt cao và đau đầu vì
nó thỏa mãn ràng buộc toàn vẹn.
Phỏng đoán là một hình thức lập luận không đơn điệu, các giải thích
phù hợp với trạng thái của cơ sở tri thức có thể trở nên không phù hợp với

thông tin mới. Trong ví dụ trên là lời giải thích đi_mưa có thể hóa ra là sai
lầm, và giải thích khác đau_đầu ∧ sốt_caocó thể là nguyên nhân thực sự cho
các quan sát đã cho. Sự tồn tại của nhiều nguyên nhân là một đặc tính tổng


22

quát của lập luận phỏng đoán, và việc lựa chọn giải thích “hợp lý hơn” là một
vấn đề quan trọng.
2.2. Chương trình logic phỏng đoán và câu trả lời phỏng đoán
Phần này tập trung trình bày về cú pháp của chương trình logic phỏng
đoán [4] và câu trả lời phỏng đoán.
2.2.1. Chương trình logic phỏng đoán
Định nghĩa 2.1 [4] Chương trình logic phỏng đoán là bộ ba <P, A, IC>, trong đó:
-

P là một chương trình logic thông thường.
A là một tập các vị từ, được gọi là các vị từ phỏng đoán. Các vị từ trong A

-

không xuất hiện trong phần đầu của các mệnh đề trong P.
IC là một tập các ràng buộc toàn vẹn, mỗi ràng buộc toàn vẹn có dạng:
L1, . . . , Ln→ false
(1)
hoặc có dạng:

L1, . . ., Ln→A1, . . ., Am.

trong đó L1, . . . , Lnlà các literal, A1, . . ., Am là các nguyên tố.

Định nghĩa 2.2 Cơ sở Herbrand Bcủa chương trình logic phỏng đoán  =
<P,A, IC> là tập các nguyên tố nền trong . Một thể hiện của là một tập
con của cơ sở Herbrand B.
Ví dụ 2.3 Xem chương trình logic phỏng đoán <P, A, IC>, trong đó chương
trình logic P gồm các mệnh đề:
have(X) ← buy(X)
have(X) ← borrow(X)
no-money ←
Tập các vị từ phỏng đoán A = {buy,borrow,register}
Các ràng buộc toàn vẹn (IC):
buy(X)∧no-money→
buy(tv) → register(tv)


23

Định nghĩa 2. Một quan sát Q đối với chương trình logic phỏng đoán  là
một hội của các literal trong .
Ví dụ 2.4 Xem chương trình logic phỏng đoán ở ví dụ 2.2, quan sát Q:
faulty_lamp. Trong phần sau ta sẽ tìm câu trả lời cho quan sát này.
2.2.2.Câu trả lời phỏng đoán
Câu trả lời phỏng đoán được trình bày sau đây được dựa trên mô hình
bền vững tổng quát của chương trình logic phỏng đoán.
Định nghĩa 2.3 [4] (Mô hình bền vững tổng quát) Cho =<P, A, IC> là
chương trình logic phỏng đoán và ∆ là một tập con của A. Một thể hiện M(∆)
của  là mô hình bền vững tổng quát của <P, A, IC>nếu thỏa:
(i)
(ii)

M(∆) là một mô hình bền vững của P ∪ ∆, và

M(∆)⊨IC.
Ví dụ 2.5 Xét chương trình logic phỏng đoán <P, A, IC>, trong đó P gồm các
mệnh đề:
p←a
q←r
Tập A các vị từ phỏng đoán A ={a}
và ràng buộc toàn vẹn IC:
p→r
Xem tập ∆= {a}. Lúc đó M(∆) = {a, p} là mô hình bền vững duy nhất
của P ∪ ∆ và không phải là mô hình bền vững tổng quát của <P, A, IC> vì
không thỏa ràng buộc IC (do không chứa r). Tuy nhiên, tập M’ = {a, p, q, r}
là mô hình của P ∪ ∆ và thỏa mãn ràng buộc IC nhưng M’ không phải là mô
hình bền vững tổng quát của <P, A, IC> vì nó không phải là mô hình bền
vững của P ∪ ∆.


24

Ví dụ 2.6 Xét chương trình logic phỏng đoán <P, A, IC>, trong đó P gồm các
mệnh đề:
p←a
q ← r, s
Tập A các vị từ phỏng đoán A ={a}
và ràng buộc toàn vẹn IC:
q→r
Với tập phỏng đoán ∆= {a}. Lúc đó M(∆) = {a, p} là mô hình bền vững
tổng quát của <P, A, IC> vì nó là mô hình bền vững của P ∪ ∆ và thỏa ràng
buộc IC. Tuy nhiên, tập M’ = {a, p, q} là mô hình của P ∪ ∆ nhưng không
thỏa mãn ràng buộc IC.
Định nghĩa 2.4 [4] (Câu trả lời phỏng đoán) Cho  = <P, A, IC> là chương

trình logic phỏng đoán và Q là một quan sát. Lúc đó Q có một câu trả lời
phỏng đoán là ∆⊆A nếu và chỉ nếu tồn tại mô hình bền vững tổng quát M(∆)
của  sao cho M(∆) ⊨Q.
Như vậy, với chương trình logic phỏng đoán  = <P, A, IC> và quan sát
Q cho trước, mục đích của phỏng đoán là tìm một tập phỏng đoán ∆⊆A sao cho:
(i)
(ii)

M⊨Q
M⊨IC
Trong đó M là mô hình bền vững của P∪∆
Ví dụ 2.7 Xét chương trình logic phỏng đoán <P, A, IC>ở ví dụ 2.6 và quan
sát Q = {p}. Ta có ∆= {a} câu trả lời phỏng đoán của Q vì M(∆) = {a, p}
làmô hình bền vững tổng quát của <P, A, IC>.
Ví dụ 2.8 Xét chương trình logic phỏng đoán <P, A, IC>, trong đó P gồm các
mệnh đề:
p←r∧b∧¬q
q←a
r←
Tập các vị từ phỏng đoán A = {a, b}


25

Ràng buộc toàn vẹn IC: ←¬p
Với ∆ = {b} thì M(∆) = {p, b, r} là mô hình bền vững của P∪∆. Do đó
∆ = {b} là giải thích của quan sát Q = {p}.
2.3. Chương trình logic phỏng đoán có chứa ràng buộc
2.3.1. Chương trình logic có ràng buộc
Định nghĩa 2. (Bộ ký hiệu ∑ ) Một bộ ký hiệu ∑ là tập các ký hiệu hàm và ký

hiệu vị từ cùng với bậc của mỗi ký hiệu. Các vị từ trong ∑được gọi là vị từ
ràng buộc.
Các vị từ trong chương trình logic ràng buộc được chia thành hai lớp:
các vị từ ràng buộc và các vị từ do người sử dụng định nghĩa.
Định nghĩa 2.5 (Ràng buộc nguyên tố) Một ràng buộc nguyên tố có dạng
p(t1,…,tn), trong đó t1,…, tn là các hạng thức và p∈ ∑ là một ký hiệu vị từ.
Một ràng buộc là hội của các ràng buộc nguyên tố.
Một literal là một nguyên tố hoặc ràng buộc nguyên tố.
Ví dụ 2.9 Các ràng buộc nguyên tố:
X + Z >5
Z2 – 3Z + 8 = 0
X ×Y

×

Z = 3.14

Ràng buộc:
X + Z > 10 ∧ Z2 – 3Z + 8 = 0



X ×Y

×

Z = 3.14

Định nghĩa 2.6 (Miền tính toán) Một ∑-cấu trúc, ký hiệu là D(hay còn gọi là
miền tính toán)


là một thể hiệncủa các ký hiệu trong ∑bao gồm:

– Một tập D khác rỗng,
– Một phép gán mỗi ký hiệu hàm trong ∑ với một hàm trên D,
– Một phép gán mỗi ký hiệu vị từ trong ∑ với một quan hệ trên D.

Định nghĩa 2.7 (Miền ràng buộc) Một miền ràng buộc là một cặp (D,L),


×