1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu chương trình logic ưu tiên và ứng dụng đối với việc lập luận

90 202 4

Đ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

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 485,31 KB

Nội dung

Ưu tiêntrong lập trình logic thường được thể hiện ở chương trình logic phân tầng, các ưutiên trong các chương trình phân tầng được xác định bởi cú pháp của một chươngtrình, và ứng dụng c

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Ị HUYÊN

TÌM HIỂU CHƯƠNG TRÌNH

LOGIC ƯU TIÊN VÀ ỨNG DỤNG

ĐỐI VỚI VIỆC LẬP LUẬN

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

ĐỊNH HƯỚNG NGHIÊN CỨU

NGƯỜI HƯỚNG DẪN KHOA HỌC

PGS.TS TRƯƠNG CÔNG TUẤN

Trang 2

Thừa Thiên Huế, 2018

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này là công trình nghiên cứu của

cá nhân tôi Tất cả số liệu, kết quả nghiên cứu trong luận văn làtrung thực, chưa được người khác công bố trong bất cứ một côngtrình nghiên cứu nào

Học viên

Nguyễn Thị Huyên

Trang 4

LỜI CẢM ƠN

Trước tiên tôi xin gửi lời cảm ơn đặc biệt tới PGS.TS TrươngCông Tuấn, người đã định hướng đề tài và tận tình hướng dẫn, chỉ bảo,động viên tôi trong suốt quá trình thực hiện luận văn thạc sỹ

Tôi xin chân thành biết ơn tất cả thầy, cô trong khoa của trườngĐại học khoa học – Đại học Huế đã truyền đạt cho tôi những kiến thứcquý báu về các vấn đề hiện đại của lập trình logic và ngành khoa họcmáy tính

Bản luận văn này được hoàn thành với sự động viên của thầyhướng dẫn và của các bạn lớp Cao học Khoa học Máy tính năm 2016 –

2018 Tôi xin bày tỏ lòng cảm ơn chân thành đến thầy và các bạn đãdành nhiều thời gian của mình để trao đổi giúp đỡ tôi khi tôi gặp khókhăn trong suốt thời gian thực hiện luận văn này

Học viên Nguyễn Thị Huyên

Trang 5

MỤC LỤC

LỜI CAM ĐOAN

LỜI CẢM ƠN

MỤC LỤC

DANH MỤC CÁC HÌNH

DANH MỤC CÁC CHỮ VIẾT TẮT

Trang 6

DANH MỤC CÁC HÌNH

Trang 7

DANH MỤC CÁC CHỮ VIẾT TẮT

AI Trí tuệ nhân tạo (Artificial Intelligence)

ALP Chương trình logic phỏng đoán (Abductive Logic Program)

FOL Ngôn ngữ bậc nhất (First Ordered Language)

PLP Chương trình logic ưu tiên (Prioritized Logic Program)

PDLP Chương trình logic ưu tiên dạng tuyển (Prioritized Disjunctive Logic Program)SLD Phép hợp giải

Trang 8

đã phát sinh một số vấn đề trong việc biểu diễn tri thức và lập luận bằng các chươngtrình logic đối với các bài toán phức tạp trong thực tế Đã có nhiều nghiên cứunhằm mở rộng chương trình logic bằng cách bổ sung các dạng phủ định cổ điển,phủ định mặc định, các phép ưu tiên hay phép tuyển

Lập luận với các ưu tiên là một vấn đề đang được quan tâm trong biểu diễntri thức Nhiều kỹ thuật lập luận ưu tiên đã được phát triển trong lĩnh vực trí tuệnhân tạo (AI) Trong AI một số hệ thống lập luận ưu tiên đã được phát triển nhưphân loại theo thứ tự ưu tiên hoặc lập luận ưu tiên mặc định Tuy nhiên lập trìnhlogic thiếu cơ chế rõ ràng để biểu diễn các tính ưu tiên trong chương trình Ưu tiêntrong lập trình logic thường được thể hiện ở chương trình logic phân tầng, các ưutiên trong các chương trình phân tầng được xác định bởi cú pháp của một chươngtrình, và ứng dụng của chúng chỉ giới hạn trong các chương trình có cấu trúc phântầng đơn

Trong những năm gần đây, việc nghiên cứu về chương trình ưu tiên đã đượcnhiều người quan tâm và đã có nhiều công trình nghiên cứu có giá trị Có hai tiếpcận được đề xuất trong thời gian gần đây, trong [9], [10] các tác giả đã nghiên cứutính chất ưu tiên giữa các quy tắc trong chương trình và đã đưa ra nhiều tính chấtquan trọng Mặt khác, trong [2], [7], [8] các tác giả nghiên cứu tính ưu tiên giữa các

vị từ trong chương trình Chương trình logic ưu tiên biểu diễn tri thức tự nhiên hơncác chương trình phân tầng và có thể áp dụng trong nhiều dạng lập luận khác nhaunhư lập luận phỏng đoán, lập luận mặc định,… Việc áp dụng chương trình logic ưutiên đối với vấn đề lập luận cũng đã được nghiên cứu trong [3], [4], [6], [7]

Trang 9

Luận văn nghiên cứu về “Tìm hiểu chương trình logic ưu tiên và ứng dụng đốivới việc lập luận” Những nội dung nghiên cứu của luận văn có ý nghĩa về mặt lýthuyết cũng như ứng dụng trong thực tiễn, giải quyết một số bài toán thuộc các lĩnhvực khác nhau trong thực tế.

Cấu trúc luận văn bao 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 các khái niệm cơ sở, cú pháp, các cách tiếp cận ngữ nghĩacủa chương trình logic Đây là kiến thức cơ sở làm tiền đề để nghiên cứu cácchương tiếp theo

Chương 2 tìm hiểu về chương trình logic ưu tiên - là sự mở rộng của chươngtrình logic bằng cách thêm vào các ưu tiên Các ưu tiên được thêm vào gồm haidạng đó là ưu tiên giữa các quy tắc và ưu tiên giữa các vị từ

Chương 3 trình bày việc áp dụng chương trình logic ưu tiên để lập luận trongchương trình logic phỏng đoán; đồng thời thực hiện cài đặt và thực thi một số bàitoán minh họa các chương trình logic ưu tiên bằng hệ thống DLV và phần mềmECLIPSE

Phần kết luận trình bày những kết quả đã đạt được và hướng phát triển củaluận văn

Trang 10

Chương 1 TỔNG QUAN VỀ CHƯƠNG TRÌNH LOGIC

Chương 1 trình bày các khái niệm cơ sở của chương trình logic Hai lớpchương trình logic được xem xét là chương trình logic xác định và chương trìnhlogic thông thường Ngữ nghĩa của các lớp chương trình này cùng với mối quan hệcủa chúng được trình bày chi tiết Đây là những kiến thức cơ sở, làm tiền đề choviệc nghiên cứu ở các chương tiếp theo

1.1 MỘT SỐ KHÁI NIỆM CƠ SỞ

Chương trình logic có nền tảng là ngôn ngữ bậc nhất (FOL), trong phần nàychỉ nêu một số khái niệm cơ sở của FOL

Định nghĩa 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ôicủ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ạngthứ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:

Định nghĩa 1.2 (Hạng thức) Gọi A là bộ ký tự Hạng thức được định nghĩa đệ

quy 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,

Trang 11

(iii) Nếu f là ký hiệu hàm n-ngôi trong A và t1, ,t n 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 mệnh đề 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 (Nguyên tố) Một nguyên tố có dạng p(t1,…,t n ), 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à nguyên tố

không chứa biến

Ví dụ 1.1 Để chỉ mối quan hệ cha/con ta có thể định nghĩa nguyên tố father(X,Y),

trong đó vị từ father là vị từ 2-ngôi và father(X,Y) để chỉ X là cha của Y

Định nghĩa 1.4 (Literal) Literal là một nguyên tố, gọi là literal dương và literal

âm là phủ định của nguyên tố

Trong phần tiếp theo sẽ trình bày cú pháp và ngữ nghĩa của chương trìnhlogic xác định – đây là lớp chương trình logic đơn giản nhất

trong đó n, m 0, a và b i , c j là các nguyên tố Trong mệnh đề (1), nếu m = n = 0 thì

nó được gọi là mệnh đề đơn vị, nghĩa là mệnh đề có dạng: a ←, đó là mệnh đề vớithân rỗng, ký hiệu ← có thể không viết

Trang 12

Chú ý rằng thân mệnh đề chứa các lietral phủ định not c1,…,not c n Literal not

a sẽ được xem là sai nếu giá trị chân lý của 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 hoặc phủ định mặc định Để ý rằng phép phủ định trong logic cổ điển, còn

gọi là phủ định mạnh, ký hiệu là ¬

Định nghĩa 1.6 (Vũ trụ/Cơ sở) Cho P là chương trình logic xác định.

Vũ trụ Herbrand của P, ký hiệu U P, 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.

từ các vị từ trong P có đối là các hạng thức nền trong vũ trụ Herbrand U P

Định nghĩa 1.7 (Thể hiện/Mô hình) Cho P là chương trình logic xác định.

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 B P của P.

Một thể hiện I của P là mô hình của P nếu mọi mệnh đề của P là đúng theo thể hiện I.

nghĩa nếu X là số tự nhiên thì ketiep(X) cũng là số tự nhiên.

Vũ trụ Herbrand của P là:

U P = {0, ketiep(0), ketiep(ketiep(0)), ketiep(ketiep(ketiep(0))), }

Cơ sở Herbrand của P là:

B P = {sotunhien(0), sotunhien(ketiep(0)), sotunhien(ketiep(ketiep(0))), }

Trang 13

I1 = {sotunhien(0)}

I2 = {sotunhien(0), sotunhien(ketiep(0))}

I3 = {sotunhien(ketiep n (0)) | n ∈ {0, 1, 2,…}}

I4 = B P

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 đề

nền sotunhien(ketiep(0)) sotunhien(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:

sotunhien(ketiep(ketiep(0))) sotunhien(ketiep(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 đề:

sotunhien(ketiep(t)) sotunhien(t)

là một mệnh đề nền nào đó của mệnh đề r2, trong đó tU P Rõ ràng mệnh đề

sotunhien(ketiep(t)) sotunhien(t) đúng vì sotunhien(t) và sotunhien(ketiep(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.8 (Mệnh đề nền) Một mệnh đề nền của mệnh đề C 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 U P Ký hiệu ground(C) là tập tất cả mệnh đề nền của C và đặt:ground(P) =

Định nghĩa 1.9 (Mô hình cực tiểu/nhỏ nhất) Cho P là chương trình logic.

1 Thể hiện M của P là mô hình cực tiểu của P nếu không tồn tại tập con thực

sự N của M mà N là mô hình của P.

2 Thể hiện M của P là mô hình nhỏ nhất của P nếu M N, với mọi mô hình

N của P.

Trang 14

1.2.2 Ngữ nghĩa

Đối với chương trình logic không chứa phủ định trong thân các mệnh đề thì nóluôn có duy nhất một mô hình cực tiểu và cũng chính là mô hình nhỏ nhất Tuy

nhiên, khi các mệnh đề của chương trình có chứa phủ định not ở thân thì 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,xem ví dụ sau:

Ví dụ 1.3 Xem chương trình logic P gồm các mệnh đề sau:

man(dung) single(X) man(X), not husband(X)

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

Dễ dàng kiểm tra P có hai mô hình cực tiểu:

Trước hết chúng ta xem tiếp cận theo ngữ nghĩa mô hình hoàn hảo của chương

trình logic phân tầng.

1.2.2.1 Ngữ nghĩa mô hình hoàn hảo

Phần này xem xét một lớp con hạn chế của chương trình logic thông thường,gọi là chương trình logic phân tầng Trước hết ta cần đến khái niệm đồ thị phụ thuộccủa một chương trình logic thông thường

Trang 15

Định nghĩa 1.10 (Đồ thị phụ thuộc) Đồ thị phụ thuộc của một chương trình logic

P, ký hiệu DG(P), là một đồ thị có hướng được xây dựng như sau:

- Ứng với mỗi vị từ p trong P, có một đỉnh được gán nhãn là p.

- Có một cạnh có hướng từ đỉnh q đến đỉnh p nếu có mệnh đề trong P có dạng:

p q Lúc đó ta nói cạnh q p là cạnh dương.

- Có một cạnh có hướng từ đỉnh q đến đỉnh p được gán nhãn "_" nếu có mệnh đềtrong P có dạng:

p ← ¬q

Lúc đó ta nói cạnh q p là cạnh âm và vị từ p là phụ thuộc âm vào vị từ q.

Định nghĩa 1.11 (Chương trình logic đệ qui) Một chương trình logic P gọi là đệ qui

nếu đồ thị phụ thuộc của nó có chu trình, ngược lại P được gọi là không đệ qui Vị từ

nằm trong chu trình được gọi là vị từ đệ qui, ngược lại gọi là vị từ không đệ qui

Định nghĩa 1.12 (Chương trình logic phân tầng) Chương trình logic P được gọi là

chương trình logic phân tầng nếu đồ thị DG(P) của nó không có chu trình chứa một

hay nhiều cạnh âm, tức là không có đích con phủ định đệ qui

Định nghĩa 1.13 (Tầng của vị từ) Cho P là chương trình logic phân tầng Tầng của

vị từ p trong P được xác định theo quy tắc sau :

(i) Nếu vị từ p là phần đầu của mệnh đề có q là đích con phủ định, nghĩa là p phụ thuộc âm vào q thì tầng của p lớn hơn tầng của q.

(ii) Nếu vị từ p là phần đầu của mệnh đề có q là đích con không phủ định thì tầng của p lớn hơn hoặc bằng tầng của q.

Do DG(P) không có chu trình chứa cạnh âm (tức không có đích con phủ định

đệ qui) nên tầng của tất cả vị từ đều hữu hạn

Thuật toán sau đây cho phép kiểm tra một chương trình logic thông thường cóđược phân tầng hay không

Trang 16

Thuật toán 1.1 Kiểm tra và xây dựng các tầng

Vào: Chương trình logic thông thường P.

Ra: Kết luận P có phân tầng được hay không Nếu có thì xây dựng các tầng cho các

vị từ của P

Phương pháp:

Bước khởi đầu: Mọi vị từ của chương trình được gán ở tầng 1.

Bước lặp: Nếu một mệnh đề có đầu là p và có đích con phủ định q, gọi i, j lần lượt

là các tầng tương ứng của p và q Nếu i j thì gán lại tầng của p là j + 1 Hơn nữa, nếu đầu mệnh đề là p và có đích con không phủ định q thuộc tầng j và i < j thì gán lại p thuộc tầng j

Nếu đến một lúc nào đó mà không còn tầng nào bị thay đổi nữa thì thuật toántạo ra các tầng của các vị từ trong chương trình Còn nếu ta đi đến tình huống trong

đó một vị từ được gán cho một tầng lớn hơn tổng số các vị từ thì chương trình logic

P không được phân tầng.

Chi tiết thuật toán viết theo ngôn ngữ tựa Pascal như sau:

Trang 17

rp

qp_p_p

until không còn sự thay đổi nào đối với các tầng hoặc có một tầng của vị từ

nào đó vượt quá số lượng các vị từ

Output trả lời "yes" (chương trình logic P được phân tầng) nếu không còn tầng

nào bị thay đổi, những tầng hiện tại là kết xuất của thuật toán và trả lời "no" (chương trình logic P không được phân tầng) nếu tầng của vị từ nào đó vượt

quá số lượng các vị từ

Ví dụ 1.4 Xem chương trình logic P gồm các mệnh đề:

Đồ thị phụ thuộc DG(P) của chương trình P:

Hình 1.1 Đồ thị DG(P) của chương trình logic ở ví dụ 1.4

Đồ thị này có chu trình chứa cạnh âm, vì vậy chương trình P này không phân tầng.

Trang 19

eppp

qp

rp

Đồ thị phụ thuộc DG(P) của chương trình P như sau:

Hình 1.2 Đồ thị DG(P) của chương trình logic ở ví dụ 1.5

Đồ thị này không có chu trình chứa cạnh âm, vì vậy chương trình P phân tầng Mặc dầu vị từ q phụ thuộc âm vào vị từ p nhưng vị từ p không phụ thuộc vào vị từ q Khi một chương trình logic là phân tầng, giả sử có k tầng thì ta có thể tạo nên một phân hoạch P1, , P k của P sao cho P = P 1 ∪ ∪ P k , trong đó P i gồm các

mệnh đề mà vị từ đầu của nó thuộc tầng i, i = 1, , k.

Đối với chương trình logic phân tầng ta cũng có thể định nghĩa toán tử hệ quảtrực tiếp như sau:

Định nghĩa 1.14 (Toán tử hệ quả trực tiếp) Giả sử P là chương trình logic, I là một

thể hiện Herbrand của P Ta ký hiệu I ⊨A nếu A I và I ⊨ ¬A nếu A I Toán tử

hệ quả trực tiếp T P đối với chương trình P là ánh xạ

Trang 20

được định nghĩa như sau: Với mỗi I ∈ ,

T p (I) = {A B P | ∃A L1 ∧ ∧ L m ground(P) và I ⊨ L1, ,Lm}

trong đó là tập các tập con của cơ sở Herbrand B P

Ký hiệu là giới hạn của dãy:

Định lý 1.1 Giả sử P là chương trình logic phân tầng Lúc đó:

(i) M P = M n là độc lập với phép phân tầng của P.

(ii) M P là mô hình cực tiểu của P.

Định nghĩa 1.15 (Ngữ nghĩa mô hình hoàn hảo) Giả sử P là chương trình logic

phân tầng Ngữ nghĩa mô hình hoàn hảo của P là mô hình cực tiểu MP được xácđịnh bởi Định lý 1.1

Ví dụ 1.6 Xét chương trình logic P gồm các mệnh đề sau:

Trang 22

rppp

qp

sp

Đồ thị phụ thuộc DG(P) của chương trình logic này như sau:

Hình 1.3 Đồ thị DG(P) của chương trình logic ở ví dụ 1.6

Đồ thị này không có chu trình chứa cạnh âm, vì vậy chương trình P phân tầng Ta

có p, r, s thuộc tầng 1 và q thuộc tầng 2 Lúc đó P = P1 ∪ P2, trong đó:

Trang 23

Định nghĩa 1.16 [5] (Phép biến đổi Gelfond - Lifschitz) Cho P là chương trình

logic và I là một thể hiện của P Phép biến đổi Gelfond - Lifschitz của P theo I sẽ biến đổi P thành chương trình ký hiệu là bằng cách thực hiện:

1 Loại bỏ khỏi P tất cả các mệnh đề chứa literal âm not A, với A I.

2 Loại bỏ các literal not A trong thân của các mệnh đề còn lại.

Trang 24

Để ý rằng nếu A I thì thân mệnh đề có chứa literal not A không thể trở thành đúng, vì vậy có thể loại bỏ mệnh đề này Mặt khác, nếu A I thì not A có thể giả sử

là đúng và được loại bỏ khỏi thân mệnh đề chứa nó

Rõ ràng là chương trình không có phủ định, nó là chương trình logic xác định,

vì vậy có mô hình nhỏ nhất, ký hiệu Γ(I).

Ví dụ 1.7 Cho P là chương trình logic gồm các mệnh đề:

Định nghĩa 1.17 [5] (Tập trả lời) Thể hiện I của chương trình logic P được gọi

là tập trả lời của P nếu I là mô hình nhỏ nhất của , nghĩa là Γ(I) = I.

Trang 25

Xét M1 = {p, q} Khi đó, 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à tập trả lời của P.

Xét M2 = {s} Khi đó, gồm các mệnh đề: s và f s

Mô hình nhỏ nhất của là {s, f} M2 Vì vậy M2 không là tập trả lời của P.

Định lý 1.2 [5] Cho P là chương trình logic Lúc đó mọi tập trả lời của P đều là mô

Định nghĩa 1.18 (Ngữ nghĩa tập trả lời) Ngữ nghĩa tập trả lời của chương trình

logic P được xác định bởi tập các tập trả lời của P.

Một nguyên tố nền A của P là đúng dưới ngữ nghĩa tập trả lời nếu A thuộc vào tất

Trang 27

Chương 2 NGỮ NGHĨA CHƯƠNG TRÌNH LOGIC ƯU TIÊN

Chương 1 đã trình bày về lớp chương trình logic với ngữ nghĩa của chúng.Qua đó ta thấy rằng có tính ưu tiên giữa các quy tắc trong chương trình logic phântầng nhưng nó thiếu cơ chế biểu diễn rõ ràng và ứng dụng của chúng chỉ giới hạntrong các chương trình có cấu trúc phân tầng Để biểu diễn tri thức một cách tựnhiên hơn, chương 2 trình bày mở rộng chương trình logic bằng cách đưa thêm ưutiên giữa các quy tắc và các vị từ – tương ứng với chương trình logic ưu tiên vàchương trình logic ưu tiên dạng tuyển

2.1 CHƯƠNG TRÌNH LOGIC ƯU TIÊN

- Quan hệ thứ tự bộ phận < trên các tên

- Hàm đặt tên ánh xạ một quy tắc đến một tên

- Ký hiệu ←, được dùng để biểu diễn một quy tắc

- Các ký hiệu phủ định ¬ và not, trong đó ¬ biểu diễn phủ định cổ điển

(phủ định mạnh) và not biểu diễn phủ định mặc định (phủ định yếu).

Ta giả thiết tập các biến, hằng, vị từ và tên là rời nhau

Đối với hàm đặt tên , ta yêu cầu với quy tắc r và r’ bất kỳ trong chương trình logic ưu tiên, (r) = (r’) nếu và chỉ nếu r và r’ chỉ cùng một quy tắc.

Định nghĩa 2.1 (Chương trình logic ưu tiên) Một chương trình logic ưu tiên (PLP)

là một bộ ba , trong đó:

• là một tập hữu hạn các quy tắc có dạng:

Trang 28

L0 ← L1,…,Lm , not L m+1 ,…, not L n (2)

trong đó L i (0 ≤ i n) là các literal L0 là phần đầu của quy tắc,

và {L1, …,Lm , not L m+1 , , not L n} là phần thân của quy tắc

• là hàm đặt tên, hàm này ánh xạ mỗi quy tắc trong đến một tên

• là một quan hệ thứ tự bộ phận trên các tên

Quan hệ < trong đóng vai trò quan trọng trong việc định giá Ta ký hiệu để chỉ tậpcác quan hệ < của Quan hệ < biểu diễn một thứ tự áp dụng các quy tắc trong quá

trình định giá chương trình Nếu (r) < (r’) trong thì quy tắc r’ được ưu tiên áp dụng

so với quy tắc r trong suốt quá trình định giá của

Ví dụ 2.1 Cho chương trình logic ưu tiên 1 :

N’1: p ← not q, not r

Trang 29

Định nghĩa 2.2 (Tập <-bao đóng) Cho chương trình Tập <-bao đóng của , ký

hiệu , là tập nhỏ nhất chứa và đóng dưới phépbắc cầu

Ta cũng cần định nghĩa hàm đổi tên như sau:

Định nghĩa 2.3 (Hàm đổi tên) Một hàm đổi tên R n ánh xạ một PLP đến một PLP 𝒫’,

nghĩa là Rn( ) = ’ = (’, 𝒫’, <’) sao cho:

(i) () = 𝒫’( ’),

(ii) Đối với mỗi quy tắc r ∈ 𝒫(), 𝒫(r) = N ∈ () khi và chỉ khi

𝒫’(r) = N’∈ (’ ’) (N và N’ không nhất thiết phải khác nhau),

(iii) Đối với bất kỳ quy tắc r1 và r2 trong , 𝒫(r() 1) = N1, ( r2) = N2∈ )((((((((((((((( , và N2 < N1

𝒫(<) khi và chỉ khi 𝒫’(r1) = N’1, 𝒫’(r2) = N’2 ∈ ’(𝒫’)(((((((((((((((

và N’2 < N’1 ∈ ’(<’)

Dễ thấy rằng việc áp dụng hàm đổi tên cho một PLP chỉ thay đổi tên của cácquy tắc trong PLP

Định nghĩa 2.4 Hai chương trình logic ưu tiên 𝒫1 và 𝒫2 là đồng nhất khi và chỉ khi tồn

tại một hàm đổi tên R n, ánh xạ 𝒫2 đến ’2 sao cho 𝒫1() = ’2(’), 1((((((((((((((() = 𝒫’2(((((((((((((((’) và 𝒫1(<+) =𝒫’2(<’+)

Thứ tự ưu tiên của các quy tắc được áp dụng trong quá trình định giá củachương trình, nếu trong một chương trình 𝒫 có mối quan hệ 𝒫(r) < ( r’ ) thì quy tắc

r’ sẽ được ưu tiên hơn quy tắc r trong quá trình định giá 𝒫

Ví dụ 2.2 Cho chương trình logic ưu tiên 𝒫3 nhưsau:

Trang 30

N1 : fly(X) bird(X), not ¬fly(X) N2:ly(X) penguin(X), not fly(X)

N3 : bird(tweety)

N4 : penguin(tweety)

N1 < N2

Rõ ràng, các quy tắc N1 và N2 xung đột nhau vì các đầu của chúng là các literal

bù nhau, việc áp dụng N1 sẽ loại trừ N2 và ngược lại Tuy nhiên, khi N1 < N2, chúng ta

có thể thấy rằng quy tắc N2 được ưu tiên áp dụng trước và loại trừ quy tắc N1 sau khi áp

dụng N2, từ đó chương trình sẽ đưa ra kết luận ¬fly(tweety).

2.1.2 Ngữ nghĩa tập trả lời của chương trình logic ưu tiên

Trong phần này sẽ trình bày về ngữ nghĩa tập trả lời của chương trình logic

ưu tiên Để đơn giản, chúng ta xem các quy tắc r trong chương trình như một tập các thể hiện nền của r được xây dựng từ tập các literal nền của Ta thừa nhận giả

thiết này trong các chương trình logic ưu tiên

Trước hết ta xét thảo luận liên quan đến chương trình 𝒫3 Trong 𝒫3 các quy tắc

N1 và N2 mâu thuẫn nhau Vì N1 < N2, chúng ta thử giải quyết xung đột bằng cách áp

dụng N2 trước và loại trừ N1 Tuy nhiên, trong một số chương trình, ngay cả khi có

một quy tắc được ưu tiên hơn quy tắc kia, hai quy tắc này có thể không ảnh hưởngnhau trong quá trình định giá chương trình Trong trường hợp này, mối quan hệ ưutiên giữa hai quy tắc này không có bất kỳ vai trò nào trong việc định giá và chúng ta

có thể bỏ qua Điều này được minh họa bằng chương trình sau đây:

Ví dụ 2.3 Cho chương trình 𝒫4 như sau:

N1 : p not q1

N2 : p not q2

Mặc dù các phần đầu của N1 và N2 là các literal bù nhau, việc áp dụng N1 sẽ

Trang 31

N1 < N2 trong quá trình định giá của 𝒫4 Định nghĩa sau đây đưa ra một mô tả hìnhthức đối với tình huống này.

Định nghĩa 2.5 Cho là chương trình logic với các quy tắc r có dạng

L0 L1, …,Lm , not L m +1 , …, not L n Quy tắc r bị loại trừ bởi khi và chỉ khi đối với bất kỳ tập trả lời Ans() của , tồn tại L i nào đó thuộc Ans(), trong đó

m + 1 i n.

Ý tưởng của việc định giá chương trình logic ưu tiên như sau: Nếu có hai quy

tắc r và r’ trong và 𝒫(r) < 𝒫(r’) thì r sẽ bị loại bỏ qua trong quá trình định giá 𝒫, chỉ khi giữ r’ và xóa r trong sẽ dẫn đến việc loại trừ r, tức là r bị loại trừ bởi 𝒫() –{r}.

Bằng cách loại bỏ tất cả các quy tắc như vậy trong , cuối cùng 𝒫 thu về chươngtrình logic trong đó thứ tự từng phần < bị loại bỏ Lúc này, việc định giá đối với 𝒫

sẽ dựa trên chương trình logic này

Quay lại chương trình 𝒫3: Vì N1 < N2 và N1 bị loại trừ bởi 𝒫3 – {N1} (nghĩa làtập trả lời của 𝒫3 – {N1} là {bird(tweety), penguin(tweety), ¬fly(tweety)}, quy tắc N1 bị

bỏ qua trong suốt quá trình định giá 𝒫3 Mặt khác, đối với chương trình 𝒫4, mặc dù N2

< N1, quan hệ N2 < N1 không ảnh hưởng đến việc định giá 𝒫4 bởi vì 𝒫4 – {N2} không

loại trừ N2 (nghĩa là tập trả lời duy nhất của 𝒫4 – {N2} là {p}).

Định nghĩa 2.6 (Thu hẹp của chương trình logic ưu tiên) Cho là một chương trình

logic ưu tiên 𝒫< là thu hẹp của 𝒫 theo quan hệ < nếu và chỉ nếu tồn tại dãy các tập i (i = 0, 1, …) sao cho:

(i) 0 = ;

(ii) i = i-1 {r 1 ,…,r k | (a) tồn tại r i-1 sao cho với mỗi j (j = 1, , k), 𝒫(r j) <

𝒫(r) ∈ 𝒫(<+ ) và r 1 ,…,r k bị loại trừ bởi i-1 – {r 1 ,…,r k}, và (b) không tồn tại

một quy tắc r’i-1 sao cho N(r’) < N(r j ) với j nào đó

(j = 1, ,k) và r’ bị loại trừ bởi i-1 {r’}};

(iii) 𝒫< = i

Trong Định nghĩa này, rõ ràng 𝒫< là một chương trình logic nhận được từ

bằng cách loại bỏ một số quy tắc từ Đặc biệt, nếu N(r’) < N(r) và {r’} loại trừ r'

Trang 32

thì quy tắc r' sẽ được loại bỏ khỏi nếu có ít hơn một quy tắc ưu tiên được loại bỏ

(tức là các điều kiện (a) và (b )) Quy trình này được tiếp tục cho đến khi đạt đến

điểm bất động Lưu ý rằng do tính chất bắc cầu của <, ta cần phải xét mỗi 𝒫(r’) < 𝒫(r) trong tập <-bao đóng của 𝒫.

Ví dụ 2.4 Từ các định nghĩa 2.2 và 2.6 có thể kết luận các chương trình 𝒫1, 3 và 4

lần lượt có các thu hẹp duy nhất là:

= {p not q, not r}

= {fly(X) penguin(X), not fly(X),

bird(tweety) , penguin(tweety) ←} = 𝒫4()

Chú ý rằng thu hẹp của chương trình logic ưu tiên có thể không duy nhất, taxem ví dụ dưới đây

Ví dụ 2.5 Giả sử chương trình logic ưu tiên 𝒫5 như sau:

Sau đây là định nghĩa các tập trả lời của chương trình logic ưu tiên:

Định nghĩa 2.7 (Tập trả lời của chương trình logic ưu tiên) Cho là một chương

trình logic ưu tiên và Lit là tập tất cả các literal nền trong ngôn ngữ của 𝒫 Đối với

Trang 33

bất kỳ tập con S của Lit, S là một tập trả lời của 𝒫, ký hiệu là Ans P (𝒫), khi và chỉ

khi S = Ans(𝒫<) đối với thu hẹp 𝒫< nào đó của 𝒫

Ví dụ 2.6 Từ định nghĩa 2.7 và các ví dụ 2.4, 2.5 ta có các tập trả lời sau:

2.1.3 Các tính chất của chương trình logic ưu tiên

Trong phần này sẽ tìm hiểu về một số tính chất của chương trình logic ưu tiên

Cho là một chương trình logic, ký hiệu ANS() là tập tất cả các tập trả lời của

Cho là chương trình logic ưu tiên Từ định nghĩa 2.6 có thể thấy rằng một thu gọn

𝒫< của 𝒫 được tạo ra từ một dãy các chương trình logic: = 0, 1, 2,… được gọi là dãy thu hẹp của 𝒫

Định lý 2.1 [10] Cho là một chương trình logic ưu tiên và {i } (i = 0, 1, 2,…) là một

dãy thu hẹp của 𝒫 Giả sử mỗi i đều có tập trả lời Khi đó, đối với bất kỳ i và j và i <

j thì ANS( j) ⊆ ANS( i)

Định lý 2.1 cho thấy một tính chất quan trọng của dãy thu hẹp của 𝒫: toàn bộtập trả lời của i đều là tập trả lời của i-1 nhưng một số tập trả lời của i-1 lại được loại

bỏ nếu chúng mâu thuẫn với quan hệ thứ tự <

Ví dụ 2.7 Cho chương trình 𝒫9 như sau:

N1 : a not b

N2 : b not a

N3 : c not b, not d

Trang 34

Định lý 2.2 [10] Cho là một chương trình logic ưu tiên và S là tập con của Lit Khi

đó, các mệnh đề sau là tương đương nhau:

1 S là một tập trả lời của 𝒫.

2 S là một tập trả lời của mỗi i với {i } (i = 0,1,2…) là dãy thu hẹp của 𝒫.

Trang 35

Hệ quả 2.1 Nếu chương trình logic ưu tiên có một tập trả lời S thì S cũng là tập trả

2.2 CHƯƠNG TRÌNH LOGIC ƯU TIÊN DẠNG TUYỂN

Phần trên chúng ta đã tìm hiểu ưu tiên giữa các quy tắc trong chương trìnhlogic Để xem xét một cách tổng quan về ưu tiên giữa các vị từ trong chương trình,phần này ta xét ưu tiên trong một chương trình logic dạng tuyển

2.2.1.Cú pháp

Định nghĩa 2.7 (Chương trình logic dạng tuyển) Chương trình logic dạng tuyển

(DLP) có các quy tắc dạng:

L1|… | L k L k +1,, L m, not L m+1,, not L n (n m k ≥ 0) (3)

Trong đó, Li là literal âm hoặc dương, “|” là một phép tuyển logic () và not là phủ

định mặc định L1|… | L k là đầu quy tắc và L k +1,, L m, not L m+1,, not L n là thân quy

tắc Một quy tắc với đầu rỗng được gọi là ràng buộc toàn vẹn

Cho P là chương trình logic dạng tuyển và là tập các literal nền, định nghĩa

Lúc đó quan hệ thứ tự được định nghĩa trên như sau:

Định nghĩa 2.8 (Ưu tiên)

(i) Với mọi phần tử e1 và e2 trong , nếu thì ta nói rằng e2 có ưu tiên cao hơn e1 nghĩa là

và được gọi là một ưu tiên

(ii) Quan hệ trên các phần tử chứa biến được định nghĩa như sau: Đối với các bộ x, y có

chứa biến, có nghĩa là với mọi thể hiện s của x và t của y.

Lưu ý rằng nếu có ưu tiên , thì e 1 và e 2 không có thể hiện chung Chẳng hạn,không có ưu tiên vì

Trang 36

Cho Φ là tập các ưu tiên, lúc đó ta định nghĩa bao đóng Φ* là một tập các ưutiên được phản xạ hoặc bắc cầu từ các ưu tiên trong Φ Chẳng hạn,

Φ = {} thì ta có

Định nghĩa 2.9 (Chương trình logic ưu tiên dạng tuyển) Một chương trình logic

ưu tiên dạng tuyển là một cặp (P, Φ) trong đó P là một chương trình logic dạng

tuyển và Φ là tập các ưu tiên trên

Ví dụ 2.8 Cho chương trình logic ưu tiên dạng tuyển như sau:

q | r

Φ: p q, q r

2.2.2 Ngữ nghĩa p-tập trả lời của chương trình logic ưu tiên dạng tuyển

Ngữ nghĩa khai báo của chương trình logic ưu tiên dạng tuyển là các tập trả

lời Sau này, với mọi tập và , với literal nền L bất kỳ, L S \ T nghĩa là L S và L

T; và not L S \ T nghĩa là L S và L T Trước tiên, ta xem xét ngữ nghĩa tập

trả lời của chương trình logic dạng tuyển

Định nghĩa 2.10 (Tập trả lời của chương trình logic dạng tuyển không chứa ký

hiệu not) Cho P là chương trình logic tuyển không chứa not (tức là m = n) và S ,

trong đó là tập tất cả các literal nền trong ngôn ngữ P Lúc đó, S là một tập trả lời của P nếu S là tập cực tiểu thỏa mãn hai điều kiện sau:

(i) S thỏa mãn mọi quy tắc L1|… | L k Lk+1,, L m (k 1) trong P, {Lk+1,, L m} S kéo theo L i nào đó thuộc S (1 ≤ i ≤ k) Đặc biệt, với mỗi ràng

buộc toàn vẹn nền ← L1,, L m trong P, {L1,, L m} S,

(ii) Nếu S chứa một cặp literal bù nhau, thì S =.

Định nghĩa 2.11 Cho P là chương trình logic dạng tuyển bất kỳ và S Lúc đó ta có

chương trình logic tuyển không chứa not P S (gọi là một thu hẹp) thu được từ P như

Trang 37

sau: một quy tắc L1|… | L k Lk+1,, L m nằm trong P S nếu có một quy tắc nền (3)

của P thỏa mãn {Lm+1,, L n} S =.

Định nghĩa 2.12 (Tập trả lời của chương trình logic dạng tuyển) Cho P là một

chương trình logic dạng tuyển S là một tập trả lời của P nếu S là một tập trả lời của P S

Một tập trả lời là nhất quán nếu nó không phải là Tập trả lời là mâu thuẫn Chương trình logic dạng tuyển là nhất quán nếu nó có một tập trả lời nhất quán; ngược lại, chương trình đó không nhất quán Một tập trả lời S của chương trình logic dạng tuyển P là cực tiểu nếu không có tập trả lời S’ nào khác mà S’ S Tập tất

cả các tập trả lời của P được viết là

Định nghĩa 2.10 (Tính ưa thích giữa các tập trả lời) Cho (P, Φ) là một chươngtrình logic ưu tiên dạng tuyển, quan hệ được định nghĩa trên các tập trả lời của P

như sau Với các tập trả lời S1, S2 và S3 bất kỳ của P,

(i)

(ii) nếu

(iii) Nếu và , thì

Nói rằng S2 ưa thích hơn S1 theo Φ nếu Chúng ta viết nếu và

Theo định nghĩa, nếu có một phần tử e2 có độ ưu tiên cao hơn một số phần tử

e1 trong , và không có một phần tử e3 nào khác có độ ưu tiên cao hơn e2 Cụ thể là,điều kiện () trong (ii) tự động thỏa mãn nếu không có ưu tiên trên hơn hai phần tử

khác nhau (tức là, suy ra e 1 = e2 hoặc e2 = e3)

Ví dụ 2.9 Xét chương trình logic ưu tiên dạng tuyển (P, Φ) ở ví dụ 2.8

Lúc đó, {p, r} và {q} là hai tập trả lời của P, và {q} {p, r} Lưu ý rằng {p, r} {q} bởi vì tồn tại q r trong Φ

Trang 38

Định nghĩa 2.11 (Tập trả lời ưa thích) Cho (P, Φ) là một chương trình logic ưu

tiên dạng tuyển Lúc đó, tập trả lời S của P được gọi là tập trả lời ưa thích (viết tắt

p-tập trả lời) của (P, Φ) nếu với mọi tập trả lời S’ của P, kéo theo (theo Φ) Tập tất

cả các p-tập trả lời của (P, Φ) được viết là

Các p-tập trả lời là các tập trả lời bao gồm các phần tử có các ưu tiên cao nhấttheo Φ Theo định nghĩa, (P, Φ) có một p-tập trả lời nếu P có hữu hạn

tập trả lời

Khi một chương trình có nhiều tập trả lời và muốn lọc ra theo ý muốn củangười lập luận thì sử dụng một chương trình logic ưu tiên dạng tuyển và các p-tậptrả lời Chẳng hạn, cơ chế ưu tiên của chương trình logic ưu tiên dạng tuyển sẽ làmgiảm thông tin không xác định trong một chương trình logic tuyển

Ví dụ 2.10 Cho chương trình P0 như sau:

Quy tắc đầu tiên nói rằng xe hơi không khởi động có thể do bình điện hỏng hoặcthiết bị đánh lửa hỏng Dựa trên kinh nghiệm người lập luận cho rằng nguyên nhân

do thiết bị đánh lửa ít xảy ra hơn bình điện Tình huống này được thể hiện bằng

ưu tiên sau:

Lúc đó, p-tập trả lời của (P0,Φ) là S = {mo_khoa, ¬khoi_dong, binh_dien_hong}.

Tình huống trên cũng có thể được thể hiện bằng cách sử dụng phủ định mặc

định (NAF) Giả sử chương trình P1 thu được từ P0 bằng cách viết lại quy tắc đầutiên như sau:

Trang 39

Lúc đó, S cũng là tập trả lời của chương trình P1 Tuy nhiên, sử dụng phủ định mặcđịnh không phù hợp trong các tình huống thay đổi Giả sử lập luận sau đó phát hiện

ra các radio trên xe hoạt động và đó là ràng buộc toàn vẹn nói rằng radio không hoạtđộng nếu bình điện hư như sau:

Đặt P2 = P1 ∪ {radio_hoat_dong ←} ∪{IC}

Lúc đó không thể xác định nguyên nhân danh_lua_hong trong P2 Ngược lại,

chương trình P3 = P0 ∪ {radio_hoat_dong ←} ∪ {IC} sẽ có p-tập trả lời là {mo_khoa, ¬khoi_dong, radio_hoat_dong, danh_lua_hong}

Như vậy chương trình logic ưu tiên dạng tuyển có thể xác định các tri thứcđược ưu tiên một cách tự nhiên, và có thể lựa chọn các tập trả lời phù hợp với cáctình huống thay đổi Chú ý rằng việc lựa chọn các p-tập trả lời không ảnh hưởngđến bất kỳ tri thức nào Chẳng hạn, xét chương trình P4 thu được từ P0 bằng cáchthay thế quy tắc tuyển đầu tiên bằng quy tắc:

trong đó troi_lanh có ưu tiên hơn hai tuyển còn lại Thì (P4, Φ) có p-tập trả lời

{mo_khoa, ¬khoi_dong, troi_lanh}.

2.2.3 Các tính chất của chương trình logic ưu tiên dạng tuyển

Các p-tập trả lời của chương trình logic ưu tiên dạng tuyển mở rộng tập trả lờicủa chương trình logic dạng tuyển

Mệnh đề 2.1 [8] (Quan hệ giữa các tập trả lời và các p-tập trả lời) Cho (P, Φ) là chương trình logic ưu tiên dạng tuyển Lúc đó, PAS (P,Φ) AS P Trường hợp đặc biệt, PAS(P,Φ ) = AS P

Như vậy, các tập trả lời của một chương trình là trường hợp đặc biệt của p-tập trả lời của một chương trình logic ưu tiên dạng tuyển khi không có ưu tiên Rõ

Trang 40

ràng nếu một chương trình P có một tập trả lời duy nhất, thì đó cũng là p-tập trả lời duy nhất của (P, Φ) với mọi Φ.

Mệnh đề trên cho thấy khi chúng ta thêm vào các ưu tiên thì sẽ làm giảm sốlượng các giải pháp có thể nói chung Tuy nhiên, việc giảm này không đơn điệu, tức

là, tăng mức độ ưu tiên trong PDLP không phải lúc nào cũng làm giảm số lượng cácp-tập trả lời

Mệnh đề 2.2 [8] (Tính không đơn điệu) Cho hai chương trình logic ưu tiên dạng

tuyển (P, Φ1) và (P, Φ2) Lúc đó, Φ1 ⊆ Φ2 không suy ra

Ví dụ 2.11 Cho chương trình P như sau:

Tình huống trong ví dụ trên có thể mô tả như sau: Có ba loại thuốc khác

nhau p, q, và r Một bệnh nhân phải dùng p hoặc q, và q hoặc r Ngoài ra, người ta cũng biết rằng uống q và r gây ra các phản ứng phụ (vì thế không nên dùng chung

với nhau) Với các ưu tiên rỗng Φ1, có hai khả năng lấy {p, r} hoặc {q} Ưu tiên Φ2

cho biết thuốc q có hiệu quả hơn p nên sẽ dùng thuốc {q} Ưu tiên Φ3 cho biết thuốc

r là thuốc tốt nhất, cho nên {p, r} là sự lựa chọn tốt nhất.

Trong ví dụ trên, {q} được lựa chọn trong Φ1 và Φ2, trong Φ3 khi ta thêm ưu tiên

thì lựa chọn thay đổi là {p, r} Như vậy, p-tập trả lời thay đổi khi các ưu tiên thay đổi.

Trong chương trình logic ưu tiên dạng tuyển, các mối quan hệ ưu tiên đượcđịnh nghĩa trên các phần tử trong , chúng được sử dụng để thể hiện một cách tổngquát ưu tiên trên các dạng tri thức với các trường hợp ưu tiên như sau:

Trường hợp 1 Ưu tiên giữa các tri thức hội:

Ngày đăng: 16/10/2018, 08:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w