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

luận văn thạc sĩ nghiên cứu lập trình logic tập trả lời và ứng dụng

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 (1.48 MB, 75 trang )

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

VÕ THỊ NHỎ

NGHIÊN CỨU LẬP TRÌNH LOGIC TẬP TRẢ LỜI
VÀ ỨNG DỤNG

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ế, 2014


LỜI CAM ĐOAN

Tơi cam đoan đây là cơng trình nghiên cứu của riêng tôi dƣới sự hƣớng
dẫn khoa học của thầy giáo PGS.TS. Trƣơng Công Tuấn.
Các kết quả nêu trong luận văn là trung thực, có nguồn gốc rõ ràng, đƣợc
trích dẫn đầy đủ và chƣa từng cơng bố trong bất kỳ cơng trình khoa học nào.

Tác giả luận văn

Võ Thị Nhỏ



LỜI CẢM ƠN
Luận văn đƣợc hoàn thành dƣới sự hƣớng dẫn khoa học của thầy
PGS.TS. Trƣơng Công Tuấn, trƣờng Đại học Khoa học Huế. Tơi xin bày tỏ
lịng biết ơn chân thành, sâu sắc nhất đến thầy về sự hƣớng dẫn khoa học, tận
tình, chi tiết và ln tạo mọi điều kiện tốt nhất để tơi có thể hồn thành luận
văn này.
Tơi xin kính gửi lời cảm ơn đến q thầy cô giáo trong Khoa Công nghệ
thông tin trƣờng Đại học Khoa học Huế, quý thầy cô giáo ở các đơn vị trực
thuộc Đại học Huế, các thầy cô cán bộ phịng Sau Đại học cùng những thầy
cơ thỉnh giảng đã trực tiếp giảng dạy, truyền đạt kiến thức và cung cấp những
nguồn tƣ liệu quý báu cho tôi trong suốt q trình học tập và nghiên cứu.
Bên cạnh đó, tơi xin đƣợc dành những tình cảm tốt đẹp và lời cảm ơn
đến trƣờng Đại học Tiền Giang - Khoa Cơng nghệ thơng tin, cùng các Phịng,
Ban, Trung tâm trong Trƣờng Đại học Tiền Giang đã tạo mọi điều kiện thuận
lợi để tơi có điều kiện cơ sở vật chất học tập và hồn thành tốt luận văn.
Tơi xin bày tỏ lòng biết ơn đến những ngƣời thân trong gia đình và bạn
bè, đồng nghiệp đã ln động viên, giúp đỡ, tạo điều kiện để cho tơi hồn
thành luận văn này.
Tôi chân thành tri ân.
Huế, tháng 09 năm 2014
Học viên

Võ Thị Nhỏ


i

MỤC LỤC


Trang
TRANG PHỤ BÌA
LỜI CAM DOAN
LỜI CẢM ƠN
DANH MỤC CÁC THUẬT NGỮ................................................................iii
DANH MỤC CÁC KÝ HIỆU.........................................................................v
CÁC CHỮ VIẾT TẮT...................................................................................vi
DANH MỤC CÁC HÌNH VẼ......................................................................vii
MỞ ĐẦU.......................................................................................................... 1
Chƣơng 1 TỔNG QUAN VỀ CHƢƠNG TRÌNH LOGIC.........................3
1.1. Một số định nghĩa.......................................................................................3
1.2. Chƣơng trình logic dƣơng.........................................................................4
1.3. Phủ định trong các chƣơng trình logic.......................................................9
1.4. Các tính chất của mơ hình bền vững........................................................13
1.5. Lập luận từ các mơ hình bền vững...........................................................15
1.6. Tiểu kết chƣơng 1.................................................................................... 16
Chƣơng 2 NGỮ NGHĨA TẬP TRẢ LỜI CỦA CHƢƠNG TRÌNH
LOGIC............................................................................................................17
2.1. Ràng buộc.................................................................................................17
2.2. Phủ định mặc định và phủ định mạnh...................................................... 18
2.3. Cú pháp và ngữ nghĩa tập trả lời của chƣơng trình logic mở rộng..........19
2.4. Các tính chất của tập trả lời......................................................................22


ii

2.5. Ví dụ về biểu diễn tri thức bằng chƣơng trình logic mở rộng.................23
2.6. Tiểu kết chƣơng 2.................................................................................... 31
Chƣơng 3 NGỮ NGHĨA TẬP TRẢ LỜI CỦA CHƢƠNG TRÌNH
LOGIC DẠNG TUYỂN MỞ RỘNG VÀ ỨNG DỤNG BIỂU DIỄN TRI

THỨC............................................................................................................. 32
3.1. Cú pháp và ngữ nghĩa chƣơng trình logic dạng tuyển mở rộng..............33
Trong phần này trình bày về các khái niệm liên quan đến chƣơng trình logic
dạng tuyển mở rộng và ngữ nghĩa của lớp chƣơng này [10]..........................33
3.2. Ví dụ biểu diễn tri thức sử dụng chƣơng trình logic EDLP.....................36
3.3. Cài đặt một số bài toán với hệ thống SMODELS và DLV mở rộng............37
3.3.1 Giới thiệu hệ thống SMODELS và DLV mở rộng..........................38
3.3.2 Cài đặt và chạy demo ứng dụng.....................................................39
3.4. Tiểu kết chƣơng 3.................................................................................... 54
KẾT LUẬN.................................................................................................... 55
TÀI LIỆU THAM KHẢO............................................................................ 56
PHỤ LỤC.......................................................................................................58


iii

DANH MỤC CÁC THUẬT NGỮ
Chƣơng trình logic
Chƣơng trình logic nền
Chƣơng trình tập trả lời
Chƣơng trình logic mở rộng
Chƣơng trình logic dạng tuyển mở rộng

Cơ sở Herbrand
Điểm bất động nhỏ nhất
Lập trình logic
Lập trình logic tập trả lời
Literal âm
Mơ hình bền vững
Mơ hình cực tiểu

Mơ hình nhỏ nhất
Ngữ nghĩa mơ hình bền vững
Nguyên tố
Phủ định mạnh
Phủ định mặc định
Quy tắc
Hiện hành nền
Toán tử hệ quả trực tiếp


iv

operator
Vị từ

Predicate

Vũ trụ Herbrand

Herbrand universe

Giả thiết thế giới đóng

Closed world assumption.


v

DANH MỤC CÁC KÝ HIỆU





Giao
Hoặc (phép tốn logic)
Hợp

¬


Phủ định
Và (phép hội logic)


vi

CÁC CHỮ VIẾT TẮT
ASP

Answer Set Program

CWA

Closed world assumption

MM

Minimal model

ELP


Extended Logic Program

EDLP

Extended Disjunctive Logic Program


vii

DANH MỤC CÁC HÌNH VẼ
Số hiệu hình vẽ
3.1
3.2
3.3
3.4

3.5

3.6

3.7


1

MỞ ĐẦU
Sự ra đời và phát triển của lập trình logic trong những thập niên vừa qua
đã đóng vai trị hết sức quan trọng trong nhiều lĩnh vực. Vào năm 1972, Alain
Colmerauer là ngƣời đầu tiên thực hiện hệ thống lập trình logic, đƣợc gọi là

Prolog (Programming logic). Tên gọi Prolog đƣợc xuất phát từ cụm từ tiếng
Pháp Programmation en logique, nghĩa là "lập trình theo logic". Mục tiêu của
Prolog là giúp ngƣời dùng mơ tả lại bài tốn trên ngơn ngữ của logic, dựa trên
đó, máy tính sẽ tiến hành suy diễn tự động dựa vào những cơ chế suy diễn có
sẵn (hợp nhất, quay lui và tìm kiếm theo chiều sâu, …) để tìm câu trả lời cho
ngƣời dùng. Phép hợp nhất là nền tảng của mọi hoạt động trong Prolog để tìm
ra câu trả lời.
Hiện nay, một hƣớng mở rộng của lập trình logic đƣợc gọi là lập trình
tập trả lời (ASP) đã và đang đƣợc nhiều nhà khoa học quan tâm. ASP có thể
dùng để biểu diễn các dạng tri thức khác nhau của thế giới thực. ASP đƣợc
xem nhƣ một ngơn ngữ có ngữ nghĩa dạng khai báo và cũng dựa trên ngữ
nghĩa mơ hình bền vững của chƣơng trình logic thơng thƣờng, đã đƣợc
chứng minh là rất phù hợp cho nhiều lĩnh vực ứng dụng. Nhiều cơng trình
nghiên cứu có giá trị về lập trình tập trả lời đã đƣợc cơng bố. Cụ thể, các tác
giả trong [3,5,6,7,8,10] đã nghiên cứu về lập trình tập trả lời và ứng dụng để
biểu diễn tri thức. Hệ thống SMODELS [4], [11] thƣờng đƣợc sử dụng cho việc
cài đặt và thực thi đối với lớp chƣơng trình logic với ngữ nghĩa tập trả lời.
Luận văn nghiên cứu về lập trình logic tập trả lời và ứng dụng để biểu
diễn tri thức, tiến hành cài đặt một số chƣơng trình minh họa bằng phần mềm
tích hợp Smodels và DLV mở rộng. Những nội dung nghiên cứu của luận văn
này là có ý nghĩa về mặt lý thuyết cũng nhƣ ứng dụng trong thực tiễn.
Cấu trúc nội dung luận văn gồm phần mở đầu, ba chƣơng nội dung,
phần kết luận, hƣớng phát triển của đề tài và phần phần phụ lục.


2

Chƣơng 1 trình bày những khái niệm cơ sở của chƣơng trình logic, ngữ
nghĩa mơ hình nhỏ nhất của chƣơng trình logic, ngữ nghĩa mơ hình bền vững
của chƣơng trình logic thơng thƣờng.

Chƣơng 2 trình bày cú pháp và ngữ nghĩa của chƣơng trình logic mở
rộng (ELP) theo tiếp cận ngữ nghĩa tập trả lời. Các chƣơng trình này cho
phép phủ định mạnh và phủ định mặc định đƣợc phép xuất hiện trong các
mệnh đề. Cách tiếp cận ngữ nghĩa của lớp chƣơng trình này là sự mở rộng
của ngữ nghĩa mơ hình bền vững.
Chƣơng 3 trình bày cú pháp và ngữ nghĩa của chƣơng trình logic dạng
tuyển mở rộng (EDLP) và ứng dụng lớp chƣơng trình này trong việc biểu
diễn tri thức thơng qua một số bài tốn minh họa. Các bài tốn này đƣợc trình
bày chi tiết từ việc biểu diễn bằng chƣơng trình logic dạng tuyển mở rộng đến
việc cài đặt và thực thi bằng hệ thống trình biên dịch lập trình logic tập trả lời.
Phần phụ lục trình bày việc cài đặt và thực thi một số ví dụ minh họa
trong các chƣơng bằng phần mềm tích hợp Smodel và DLV mở rộng.
Phần kết luận nêu những kết quả đã đạt đƣợc và hƣớng phát triển của đề
tài.
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 q Thầy, Cơ và các bạn.


3

Chƣơng 1

TỔNG QUAN VỀ CHƢƠNG TRÌNH LOGIC
Chƣơng một trình bày các khái niệm cơ sở của chƣơng trình logic, lớp
chƣơng trình đơn giản nhất của chƣơng trình logic đƣợc gọi là chƣơng trình
logic dƣơng sẽ đƣợc xem xét trƣớc tiên cùng với ngữ nghĩa mơ hình nhỏ
nhất của nó [2]. Tiếp theo, chƣơng 1 sẽ trình bày việc mở rộng các chƣơng
trình logic dƣơng khi cho phép tốn tử phủ định not xuất hiện trong thân các
quy tắc, đƣợc gọi là chƣơng trình logic thơng thƣờng và tiếp cận ngữ nghĩa

mơ hình bền vững của lớp chƣơng trình này [9]. Đây là những kiến thức làm
tiền đề cho các nghiên cứu tiếp theo về lập trình logic tập trả lời.
1.1. Một số định nghĩa
Định nghĩa 1.1 [1] (Bộ ký tự) Bộ ký tự bao gồm các 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)

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, ký hiệu vị từ có kèm theo một số tự nhiên xác định để
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.
Trên cơ sở bộ ký tự đã cho, ngƣời ta đƣa ra định nghĩa về hạng thức.
Hạng thức là yếu tố quan trọng của công thức logic, đƣợc xây dựng từ các
hằng, biến, hàm và đƣợc định nghĩa hình thức nhƣ sau:


4

Định nghĩa 1.2 [1] (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 trong A là một hạng thức,

(ii) Mỗi biến 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,
(iv) 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 và biến là các hạng
thức nguyên tố, hạng thức nền là hạng thức không chứa biến.
Định nghĩa 1.3 [1] (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 và các đối t1,...,tn là các hạng thức. Nguyên tố nền là
ngun tố khơng chứa biến.
Ví dụ 1.1 Xét ngun tố me(Hoa,Mai), trong đó vị từ me là vị từ 2-ngơi để chỉ
mối quan hệ mẹ. Hoa, Mai là các hằng và me(Hoa,Mai) có ý nghĩa là Hoa là
mẹ của Mai.
Định nghĩa 1.4 [1] (Literal) Literal là một nguyên tố, gọi là literal dương và
litaral âm là phủ định của nguyên tố, ký hiệu p, với p là một nguyên tố.
Ký hiệu phủ định  còn đƣợc gọi là phủ định mạnh (strong negation)
hoặc phủ định cổ điển (classical negation). Các literal p và p đƣợc gọi là
ngƣợc nhau.
Trong phần tiếp theo sẽ xem xét lớp chƣơng trình logic đơn giản nhất –
chƣơng trình logic dƣơng.
1.2. Chƣơng trình logic dƣơng
Định nghĩa 1.5 [1] (Chƣơng trình logic dƣơng) Chương trình logic dương là
một tập hữu hạn khác rỗng các mệnh đề (hoặc quy tắc) có dạng:
a  b1,…,bn


5

Trong đó n  0, a, bi là các nguyên tố, a đƣợc gọi là đầu và b1,…,bn đƣợc gọi
là thân của quy tắc, dấu phẩy ký hiệu thay cho phép hội ().
Trong mệnh đề (1), nếu n = 0 thì nó đƣợc gọi là mệnh đề đơn vị (unit clause),
nghĩa là mệnh đề có dạng: a , đó là mệnh đề với thân rỗng, ký hiệu  có
thể bỏ qua.
Ví dụ 1.2 Xem chƣơng trình logic dƣơng sau:
yeuthuong(X,Y)  phunu(X)con(Y,X)

(1)


phunu(Mai)
con(Hoa,Mai)
Trong mệnh đề (1), nguyên tố phunu(X) để chỉ X là một phụ nữ, nguyên tố
con(Y,X) để chỉ Y là con của X, yeuthuong(X,Y) là nguyên tố để chỉ X thương
yêu Y. Ý nghĩa của công thức (1) là: mọi phụ nữ đều thƣơng yêu con của họ
và các mệnh đề đơn vị có ý nghĩa: Mai là một phụ nữ và Hoa là con của Mai.
Ví dụ 1.3 Xem chƣơng trình logic dƣơng chỉ gồm 1 mệnh đề sau:
connected(X)  hub(Y), link(Y,X)
Quy tắc trên có ý nghĩa là nếu Y là đơn vị điều khiển trung tâm và có đƣờng
kết nối đến một đơn vị X thì X đƣợc kết nối.
Ví dụ 1.4 Xem chƣơng trình logic sau để định nghĩa số chẵn.
r1: sochan(0)
r2: sochan (s(s(X)))  sochan(X)
Trong chƣơng trình này thì s là ký hiệu hàm 1-ngơi, đƣợc xác định bởi
s(X) = X + 1 với X , nguyên tố sochan (X) để chỉ X là một số chẵn. Mệnh
đề đơn vị r1 có ý nghĩa 0 là 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.


6

Định nghĩa 1.6 [1] (Vũ trụ/Cơ sở/Thể hiện Herbrand) Cho P là chƣơng trình
logic dƣơng.


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 vị từ trong P có đối là các hạng thức nền trong vũ trụ Herbrand
UP.


Một thể hiện Herbrand (hoặc đơn giản là thể hiện) của P là một tập

con tùy ý của cơ sở Herbrand BP của P.
Một thể hiện Herbrand có thể đƣợc xem nhƣ một tập các nguyên tố nền
có giá trị đúng trong một ngữ cảnh đã cho. Vũ trụ Herbrand của chƣơng trình

logic dƣơng P ln ln là vơ hạn nếu trong P có ít nhất một ký hiệu hàm có
số đối số lớn hơn 0.
Ví dụ 1.5 Xét chƣơng trình logic dƣơng P ở ví dụ 1.4:
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 = {sochan(0), sochan(s(0)), sochan(s(s(0))),...}
Một số thể hiện Herbrand của P là:
I1 = {sochan(0)}
I2 = {sochan(0), sochan(s(0))}
I3 = {sochan(sn(0)) | n  {0, 2, 4,…}}
I4=BP
Định nghĩa 1.7 [1] (Hiện hành nền) Một hiện hành nền của mệnh đề C có
dạng (1) là một mệnh đề C’ nhận đƣợc từ C bằng cách thay thế các biến trong
C bởi các hạng thức nền trong vũ trụ Herbrand UP. Ký hiệu ground(C) là tập
tất cả hiện hành nền của C và đặt ground(P) =∪CP ground(C)


7


Định nghĩa 1.8 [1] (Mơ hình) Cho I là một thể hiện của chƣơng trình logic
dƣơng P. Lúc đó I là mơ hình của
- mệnh đề nền (khơng chứa biến) C = a  b1,…,bm ký hiệu I
{b1,…,bm}

C nếu

I hoặc a  I;

- mệnh đề C, ký hiệu I

C nếu I

C’ với mọi C’  ground(C);

- chƣơng trình P, ký hiệu I P nếu I

C với mọi mệnh đề C của P.

Ví dụ 1.6 Xét các thể hiện I1, I2, I3, I4 của chƣơng trình logic P trong ví dụ
1.4, rõ ràng I1 khơng phải là mơ hình của P vì mặc dầu I1 là mơ hình của
mệnh đề sochan(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 sochan(s(s(0)))  sochan(0) của r2 mà I1 khơng phải là mơ hình
của mệnh đề nền này. Cũng vậy, 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:
sochan(s(s(s(0))))  sochan(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 đề:

sochan(s(s(t))))  sochan(t)

là một hiện hành nền nào đó của mệnh đề r2, trong đó t  UP. Rõ ràng
mệnh đề sochan(s(s(t)))  sochan(t) đúng vì sochan(t) và sochan(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.
Định nghĩa 1.9 [1] (Mơ hình cực tiểu) Cho P là chƣơng trình logic dƣơng, M
là mơ hình cực tiểu của P nếu khơng tồn tại mơ hình J của P sao cho J  M.
Định lý 1.1 [2] Mọi chƣơng trình logic dƣơng đều có mơ hình cực tiểu duy
nhất (đƣợc gọi là mơ hình nhỏ nhất), ký hiệu LMP.
Định nghĩa 1.10 [2] (Ngữ nghĩa chƣơng trình logic dƣơng) Cho P là chƣơng
trình logic dƣơng, ngữ nghĩa của P là mơ hình nhỏ nhất LMP của P.


8

Mơ hình nhỏ nhất LMP có thể tính đƣợc bằng cách sử dụng toán tử hệ
quả trực tiếp nhờ vào một q trình lặp. Ta có định nghĩa sau:
Định nghĩa 1.11 [2] (Toán tử hệ quả trực tiếp) Cho P là chƣơng trình logic
dƣơng. Đặt là tốn tử đƣợc xác định nhƣ sau: Với mỗi I2BP ,
TP(I) = { A  BP | tồn tại A  A1,…, An thuộc ground(P)
và {A1,…, An}  I }
trong đó 2BP là tập các tập con của cơ sở Herbrand BP. TP đƣợc gọi là tốn tử
hệ quả trực tiếp trên đó 2BP .
Định lý 1.2 [2] Cho P là chƣơng trình logic dƣơng. Lúc đó:
- Tốn tử TP đơn điệu và có điểm bất động nhỏ nhất lfp(TP),
- lfp(TP) là mơ hình nhỏ nhất LMP của P và dãy

hội tụ về

LMP, trong đó: = , .
Ví dụ 1.7 Xét chƣơng trình logic P ở Ví dụ 1.4:
r1: sochan(0) 

r2: sochan(s(s(X))))  sochan(X)
Áp dụng Định lý 1.2 ở trên ta tính đƣợc:
Ta có:
=



=

{sochan(0)}

=

{ sochan(0), sochan(s(s(0)))}

=

{ sochan(0), sochan(s(s(0))), sochan(s(s(s(s(0))))),…}


=

n

{sochan(s (0)) | n  {0, 2, 4,…}}
n

Vậy LMP = {sochan(s (0)) | n  {0, 2, 4,…}}



9

Ví dụ 1.8 Xét chƣơng trình logic P gồm các mệnh đề:
h(0,0)



t(a,b,r)



p(0,0,b)



p(f(X),Y,Z)  p(X,Y,Z’), h(X,Y), t(Z,Z’,r)
h(f(X),f(Y))  p(X,Y,Z’), h(X,Y), t(Z,Z’,r)
Ta có:
=



=

{h(0,0), t(a,b,r), p(0,0,b)}

=

{h(0,0), t(a,b,r), p(0,0,b), p(f(0),0,a), h(f(0),f(0))}


=
Vậy LMP = {h(0,0), t(a,b,r), p(0,0,b), p(f(0),0,a), h(f(0),f(0))}
1.3. Phủ định trong các chƣơng trình logic
Các chƣơng trình logic dƣơng biểu diễn cho tri thức dương và cho
phép mơ hình hóa khá nhiều bài tốn khác nhau, các mệnh đề 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. Tuy nhiên, có nhiều trƣờng hợp địi hỏi một cấu
trúc để mơ hình hóa khái niệm phủ định. Phủ định là một khái niệm ngôn ngữ
tự nhiên và thƣờng gặp trong nhiều tình huống thực tế.
Định nghĩa 1.12 [2] (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:
a

 b1,…,bm, not c1,…,not cn

trong đó n, m  0, a và bi, cj là các nguyên tố.


10

Chú ý rằng thân quy tắc chứa các lietral phủ định not c1,…,not cn. Giá
trị chân lý của literal phủ định là ngƣợc với giá trị chân lý của litaral dƣơng
của nó. Literal not a sẽ đƣợc xem là sai nếu giá trị chân lý của literal dƣơng a
không đƣợc chứng minh một cách hữu hạn thông qua phép hợp giải SLD. Vì
vậy phủ định not cịn đƣợc gọi là phủ định do thất bại (negation as fairlure)
hoặc phủ định mặc định (default negation). Để ý rằng phép phủ định trong
logic cổ điển, còn gọi là phủ định mạnh (strong negation), ký hiệu , là khác
với phép phủ định not trong lập trình logic. Chúng ta sẽ xem xét kỹ hơn việc
kết hợp cả hai loại phủ định này ở chƣơng 2.

Ví dụ 1.9 Xem chƣơng trình logic thơng thƣờng sau đây:
man(dung)
single(X)

man(X),nothusband(X)

husband(X)  fail
Câu truy vấn ?- single(X)
Ta nhận đƣợc câu trả lời là X = Dung
Về mặt trực giác, câu trả lời X = Dung là nhận đƣợc vì sự kiện
husband(Dung) không thể chứng minh từ P. Để chứng minh single(Dung) ta
có thể sử dụng quy tắc đầu tiên của chƣơng trình, bởi vì man(Dung) là đúng
và khơng có cách nào chứng minh sự kiện husband(Dung) là đúng trong P.
Tuy nhiên với chƣơng trình logic trong ví dụ sau:
man(dung)
single(X)
husband(X)

man(X), nothusband(X)
man(X), notsingle(X)

thì ta sẽ gặp thất bại khi tìm câu trả lời cho truy vấn ?single(X) bởi vì
single(Dung) và husband(Dung) là phụ thuộc lẫn nhau qua phép phủ định.
Phép hợp giải SLD sẽ lặp vô hạn khi trả lời câu truy vấn này.


11

Đố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ể có nhiều mơ hình cực tiểu và khơng có mơ hình nhỏ nhất. Chẳng
hạn, chƣơng trình logic trên có hai mơ hình cực tiểu:
M1 = {man(Dung), single(Dung)},
M2 = {man(Dung), husband(Dung)}.
và khơng có mơ hình nhỏ nhất.
Từ đây về sau, để đơn giản, ta sẽ gọi chương trình logic thơng thường
là chương trình logic.
Ví dụ 1.10 Xem chƣơng trình logic P gồm các mệnh đề sau:
p(X)  r(X), not q(X)
q(X)  r(X), not p(X)
r(1) 
Rõ ràng chƣơng trình P chỉ có hai mơ hình cực tiểu S1 = {r(1), q(1)} và
S2 = { r(1), p(1)} và khơng có mơ hình nhỏ nhất.
Để giải quyết vấn đề ngữ nghĩa của chƣơng trình logic, đã có nhiều tiếp
cận khác nhau, trong đó hƣớng tiếp cận mơ hình bền vững [9] đã và đang
đƣợc thừa nhận rộng rãi. Trong phần tiếp theo sẽ trình bày chi tiết hƣớng tiếp
cận này. Trƣớc hết ta có một số khái niệm sau:
Định nghĩa 1.13 [9] (Phép biến đổi Gelfond - Lifschitz) Cho P là chƣơng
trình logic. Gọi ground(P) là hiện hành của P. Đối với mọi thể hiện M của 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 phủ định not A trong thân của nó, với A
 M.
2.

Tất cả literal not A trong thân của các quy tắc còn lại.

Điều kiện 1 và 2 ở trên ấn định giá trị chân lý cho các literal phủ định.
Nếu A  M thì thân quy tắc có chứa literal not A khơng thể trở thành đúng.



12

Mặt khác, nếu A  M thì not A có thể giả sử là đúng và đƣợc loại bỏ khỏi
thân quy tắc chứa nó.
Rõ ràng PM là chƣơng trình khơng có phủ định, nó là chƣơng trình
logic dƣơng, vì vậy PM có mơ hình nhỏ nhất LM(PM)
Ví dụ 1.11 Cho P là chƣơng trình logic:
a  not b
b  not a
c  a, not b
Xét thể hiện M1 = {a, c} và M2 = {b}. Thu gọnP
a

M

gồm các quy tắc:

1



ca
và mơ hình nhỏ nhất của PM1 chính là {a,c}.
Xét thể hiện M1 = {a, c} và M2 = {b}. Thu gọn

b

PM gồm 1 quy tắc:
2




và mơ hình nhỏ nhất của PM 2 chính là {b}.
Định nghĩa 1.14 [9] (Mơ hình bền vững) Thể hiện M của chƣơng trình logic
P
đƣợc gọi là mơ hình bền vững của P nếu M là mơ hình nhỏ nhất của
M
P .
Ví dụ 1.12 Xét chƣơng trình P gồm các mệnh đề sau:
s  not q
q  not s
p  q, not s
f  s, not p
Xét M1 = { p, q}. Khi đó, PM1 gồm các mệnh đề: q và p  q và mô hình nhỏ
nhất của nó là {p, q} = M1. Vậy M1 là mơ hình bền vững của P


13

Xét M2 = {s}. Khi đó, PM2 gồm các mệnh đề: s và f  s
Mơ hình nhỏ nhất của PM2 là {s, f}  M2. Vì vậy M2 khơng là mơ hình bền
vững của P.
Ví dụ 1.13 Xem chƣơng trình logic P sau đây:
man(Dung)
woman(Anh)
single(X)

man(X), nothusband(X)


husband(X)

man(X), notsingle(X)

Lúc đó hiện hành của P là:
Ground(P) = { man(Dung), woman(Anh)
single(Dung)  man(Dung), not husband(Dung)
single(Anh)  man(Anh), not husband(Anh)
husband(Dung)  man(Dung), not single(Dung)
husband(Anh)  man(Anh), not single(Anh) }
Các mơ hình bền vững của P là:
M1 = {man(Dung), woman(Anh), single(Dung)} M2
= {man(Dung), woman(Anh), husband(Dung)}

1.4. Các tính chất của mơ hình bền vững
Phần này trình bày một số tính chất quan trọng của các mơ hình bền
vững. Trƣớc tiên ta sẽ xem xét mối quan hệ giữa mơ hình bền vững và mơ
hình cực tiểu của chƣơng trình logic.
Định nghĩa 1.15 [9] Cho I là một thể hiện của chƣơng trình logic thơng
thƣờng P. Lúc đó I là mơ hình của
- mệnh đề nền (khơng chứa biến) C = a  b1,…,bm,not c1,…,not cn,

hiệu I

C nếu {b1,…,bm}

I hoặc {a, c1,…,cn}  I ;


14


- mệnh đề C, ký hiệu I

C nếu I

- chƣơng trình P, ký hiệu I

C’ với mọi C’  ground(C);

P nếu I

C với mọi mệnh đề C của P.

Định lý 1.3 [9] Cho P là chƣơng trình logic. Lúc đó:
1.

Mọi mơ hình bền vững của P đều là mơ hình của P

2.

Mơ hình bền vững của P là mơ hình cực tiểu của P.

Hệ quả 1.1 [9] Các mơ hình bền vững là không thể so sánh nhau đƣợc, nghĩa
là nếu M1 và M2 là các mơ hình bền vững của chƣơng trình logic P thì M1 M2
và M2 M1.
Các mơ hình bền vững là sự tổng qt hóa ngữ nghĩa đối với chƣơng
trình logic dƣơng, điều này đƣợc thể hiện bởi kết quả sau:
Định lý 1.4 [9] Đối với chƣơng trình logic dƣơng thì mơ hình bền vững
chính là mơ hình nhỏ nhất của nó.
Ví dụ 1.14 Xét chƣơng trình logic P:

p(a)
r(X)  p(X), not q(X)
lúc đó P có 2 mơ hình cực tiểu là M1 = {p(a), r(a)} và M2 = {p(a), q(a)}. Ta
có M1 là mơ hình bền vững của P cịn M2 thì khơng phải.
Để ý điều làm cho M2 khác với M1 là ở chỗ khơng có quy tắc cũng nhƣ
sự kiện nào trong P đảm bảo sự xuất hiện của q(a) trong mơ hình.
Định lý 1.5 [1] Cho P là chƣơng trình logic và I là một thể hiện của P. Đặt
TP(I) = { a | tồn tại a  b1,…, bn, not c1,...,not cn thuộc ground(P)

Sao cho{b1,…, bn}  I, {c1,...,cn}  I =
} Nếu I là mơ hình của P thì TP(I) = I.


15

Tồn tại mơ hình là điểm bất động cực tiểu của tốn tử TP nhƣng khơng
phải là mơ hình bền vững. Ta xem ví dụ sau:
Ví dụ 1.15 Xét chƣơng trình logic P:
a  not b
bc
cb
để ý rằng cả hai thể hiện M1 = {a} và M2 = {b,c} đều là mơ hình cực tiểu và
TP(M1) = M1 và TP(M2) = M2.
Ta có = {a , b  c, c  b} và Do
LM( = {a} = M1 và LM(

= {b  c, c  b}.
=  M2nênM1là mơ hình

bền vững của P và M2 thì khơng phải.

1.5. Lập luận từ các mơ hình bền vữ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 [7]:

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 b nế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 ở ví dụ
1.14 p(a)


×