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

TÌM HIỂU VIỆC BIỂU DIỄN TRI THỨC TRONG a PROLOG

50 180 0

Đ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 50
Dung lượng 810,82 KB

Nội dung

Cáchtiếp cận này dựa trên ý tưởng là chương trình logic được cung cấp các đặcthù logic của tri thức trong đó, do đó nó độc lập với bất kỳ cách thực hiệnriêng biệt nào, với ngữ cảnh tự do

Trang 1

LÊ QUỐC BẢO TỊNH

TÌM HIỂU VIỆC BIỂU DIỄN TRI THỨC TRONG

A-PROLOG

LUẬN VĂN THẠC SĨ KHOA HỌC

CÔNG NGHỆ THÔNG TIN

Huế, 2016

Trang 2

LÊ QUỐC BẢO TỊNH

TÌM HIỂU VIỆC BIỂU DIỄN TRI THỨC

TRONG A-PROLOG

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ỌCPGS.TS TRƯƠNG CÔNG TUẤN

Huế, 2016

Trang 3

Prolog” này là công trình nghiên cứu của bản thân tôi Các số liệu và kết quả

nghiên cứu trong luận văn này là trung thực và chưa từng được ai công bốtrong bất kỳ công trình nào khác

Người viết luận văn

Lê Quốc Bảo Tịnh

Trang 4

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 Đạihọ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ậnvă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óa2014–2016 và các đồng nghiệp đã luôn bên cạnh, động viên tôi trong suốtthời gian học tập và thực hiện luận văn

Cuối cùng, xin gửi đến gia đình đã hỗ trợ và tạo mọi điều kiện để tôiyên tâm học tập và thực hiện tốt luận văn tốt nghiệp

Xin chân thành cảm ơn tất cả!

Huế, tháng 04/2016Học viên Lê Quốc Bảo Tịnh

Trang 5

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Ẽ

MỞ ĐẦU 1

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

1.1 Một số khái niệm cơ sở 3

1.2 Chương trình logic 4

1.2.1 Chương trình logic xác định 4

1.2.2 Chương trình logic thông thường 9

1.2.3 Các tính chất ngữ nghĩa 11

1.3 Tiểu kết Chương 1 12

Chương 2NGÔN NGỮ A-PROLOG 13

2.1 Phủ định mặc định và phủ định mạnh 13

2.2 Cú pháp của A-Prolog 14

2.3 Ngữ nghĩa của chương trình A-Prolog 15

2.4 Các tính chất ngữ nghĩa 17

2.5 Ví dụ về biểu diễn tri thức bằng A-Prolog 17

2.6 Tiểu kết Chương 2 23

Chương 3MỞ RỘNG CỦA A-PROLOG 24

3.1 Cú pháp và ngữ nghĩa của DA-PROLOG 24

3.1.1 Cú pháp của DA-Prolog 24

Trang 6

3.3.1 Giới thiệu phần mềm SMODELS 28

3.3.2 Cài đặt và chạy ứng dụng 28

3.4 Tiểu kết Chương 3 34

KẾT LUẬN 35

TÀI LIỆU THAM KHẢO 36 PHỤ LỤC

DANH MỤC CÁC THUẬT NGỮ

Trang 7

Stable modelMinimal modelLeast modelStable model semanticsAtom

Strong negationDefault negationRule

Ground instanceThe immediate consequence operatorPredicate

Herbrand universeClosed world assumption

CÁC CHỮ VIẾT TẮT

Trang 8

DANH MỤC CÁC HÌNH VẼ

Trang 10

MỞ ĐẦU

Logic tính toán được các nhà logic học đưa ra vào những năm 1950,dựa trên các kỹ thuật tự động hóa quá trình suy diễn và được phát triển thànhlập trình logic vào những năm 1970 Từ đó hình thành một khái niệm quantrọng là lập trình khai báo Về ý tưởng, các lập trình viên chỉ cần đưa rakhai báo của chương trình còn việc thực hiện cụ thể máy tính sẽ tiếnhành suy diễn tự động dựa vào những cơ chế suy diễn có sẵn (hợp nhất, quaylui và tìm kiếm theo chiều sâu,…) để tìm câu trả lời cho người dùng Ngônngữ Prolog là một công cụ thực hiện rõ ý tưởng này Nhờ khả năng khaibáo tự nhiên của lập trình logic, Prolog nhanh chóng trở nên thôngdụng cho việc biểu diễn tri thức Tính đầy đủ của nó trở nên rõ ràng hơnkhi mối liên hệ giữa các chương trình logic với cơ sở dữ liệu suy diễn đượcđưa ra vào giữa thập kỷ 80

Việc sử dụng lập trình logic và cơ sở dữ liệu suy diễn để biểu diễn trithức được gọi là “cách tiếp cận logic cho việc biểu diễn tri thức” Cáchtiếp cận này dựa trên ý tưởng là chương trình logic được cung cấp các đặcthù logic của tri thức trong đó, do đó nó độc lập với bất kỳ cách thực hiệnriêng biệt nào, với ngữ cảnh tự do, dễ dàng thao tác và suy diễn

Trong những năm gần đây đã có nhiều nghiên cứu mở rộng của lậptrình logic, một trong những mở rộng đó là A-Prolog A-Prolog là ngôn ngữ

có ngữ nghĩa dạng khai báo và dựa trên ngữ nghĩa mô hình bền vững củachương trình logic thông thường A-Prolog có thể được sử dụng để biểu diễncác kiểu tri thức khác nhau trong thế giới thực

Luận văn nghiên cứu về việc biểu diễn tri thức trong A-Prolog Nộidung của luận văn trình bày trong 3 chương Chương 1, trình bày tổng quan

về chương trình logic, trong đó tập trung vào cú pháp và ngữ nghĩa của

Trang 11

chương trình logic Chương 2, trình bày cú pháp, ngữ nghĩa của chương trìnhA-Prolog và minh họa việc biểu diễn tri thức bằng A-Prolog Chương 3, trìnhbày một mở rộng của A-Prolog, gọi là DA-Prolog, trong đó phần đầu của cácmệnh đề trong chương trình A-Prolog có chứa phép tuyển logic Trongchương 3 tập trung vào cú pháp, ngữ nghĩa của DA-Prolog và minh họa việcbiểu diễn tri thức Phần mềm lập trình logic SMODELS được sử dụng để càiđặt và thực thi một số ví dụ minh họa trong luận văn

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ĩnhvự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

Trang 12

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 [2], lớpchương trình đơn giản nhất của chương trình logic được gọi là chương logicxác định được xem xét trước tiên cùng với ngữ nghĩa mô hình nhỏ nhất của

nó Tiếp theo chương 1 sẽ trình bày việc mở rộng các chương trình logic xác

định khi cho phép toán tử phủ định not xuất hiện trong thân các mệnh đề,

được gọi chương trình logic thông thường và tiếp cận mô hình bền vững củalớp chương trình này Đây là những kiến thức làm tiền đề cho các nghiên cứutiếp theo về ngôn ngữ A-Prolog

1.1 Một số khái niệm cơ sở

Đị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ô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áchằ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 đệ

qui như sau:

Trang 13

(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à t 1 ,…,t n là các hạng thức thì

f(t 1 ,…,t n) 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 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(t 1 ,…,t n ) trong đó p là

ký hiệu vị từ n-ngôi và các đối t 1 ,…,t n 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ố child_of(Dung, Binh) trong đó child_of là vị từ

2-ngôi để chỉ mối quan hệ “con của” Dung, Binh là các hằng và child_of(Dung, Binh) có ý nghĩa là Dung là con của Binh.

Đị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ố, 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 hoặc phủ định cổ

điển 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 xác định vàchương trình logic thông thường

trong đó n0, A, Bi là các nguyên tố, A được gọi là đầu của mệnh đề và B 1,

…,B n được gọi là thân của mệnh đề, dấu phẩy ký hiệu thay cho phép hội ()

Trang 14

Trong mệnh đề (1), nếu 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ới thân rỗng, ký hiệu ← có thể bỏ qua.

Ví dụ 1.2 Xem chương trình logic xác định sau:

Trong chương trình này, cha(X,Y) để chỉ X là cha của Y, me(X,Y) để chỉ

X là mẹ của Y, chame(X,Y) để chỉ X là cha/mẹ của Y, totien(X,Y) để chỉ X là tổ tiên của Y.

Ý nghĩa của mệnh đề (1) và (2) là: X là chame của Y nếu X là cha hoặc

X mẹ của Y Mệnh đề (3) nói rằng X là totien của Y nếu X là chame của Y Mệnh đề (4) nói rằng X là tổ tiên của Z nếu X là tổ tiên của Y và Y là chame của Z.

(5) và (6) là các mệnh đề đơn vị, chính là dữ liệu vào

Ví dụ 1.3 Xem chương trình logic sau để định nghĩa số lẻ.

Trang 15

Định nghĩa 1.6 (Vũ trụ/Cơ sở/Thể hiện Herbrand) 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.

Cơ sở Herbrand của P, ký hiệu là B p, 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 U p

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 Herbrand có thể được xem như là 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 xác định P luôn luôn là một tập 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

Định nghĩa 1.7 (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ởicá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, đặt ground(P) =

Trang 16

Định nghĩa 1.8 (Mô hình) Cho P chương trình logic xác định và I là một thể

hiện của P Lúc đó I là mô hình của P nếu mọi mệnh đề của P là đúng trong I.

Ví dụ 1.5 Xét các thể hiện I 1 , I 2 , I 3 , I 4 của chương trình logic P trong ví dụ 1.3,

rõ ràng I 1 không phải là mô hình của P vì mặc dù I 1 là mô hình của mệnh đề

sole(s(0)) nhưng I 1 không là mô hình của mệnh đề r 2 vì tồn tại mệnh đề nền

sole(s(s(s(0)))) ← sole(s(0)) của r 2 mà I 1 không phải là mô hình của mệnh đề

nền này Cũng vậy, I 2 cũng không phải là mô hình của P vì mệnh đề tồn tại mệnh đề nền sole(s(s(s(s(0))))) ← sole(s(s(0))) của r 2 mà I 2 không phải là mô

hình của nó Tuy nhiên, I 3 là mô hình của P Ta có I 3 là mô hình của r 1 I 3 cũng

là mô hình của r 2 Thật vậy, xét mệnh đề:

sole(s(s(t))) ← sole(t)

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

sole(s(s(t))) ← sole(t) đúng vì sole(t) và sole(s(s(t))) đều thuộc I 3 Vậy I 3

mô hình của P Ta cũng có ngay I 4 là mô hình của P.

Định lý 1.1 [2] Mọi chương trình logic xác định đề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 M P

Đị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 M p

Mô hình nhỏ nhất M P 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 quá trình lặ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, ký hiệu 2Bp là tập các tập con của cơ sở Herbrand B P Gọi T P là ánh xạ từ

2Bp vào 2Bp và được xác định như sau: Với mỗi I 2 Bp

T P (I) = {A B P | tồn tại A ← A 1 ,…,A n thuộc ground(P)

và {A ← A 1 ,…,A n }I}

T P được gọi là toán tử hệ quả trực tiếp trên 2Bp

Trang 17

Định lý 1.2 [2] Cho P là chương trình logic xác định Lúc đó:

1 Toán tử TP đơn điệu tăng và có điểm bất động nhỏ nhất, ký hiệu

1.2.2 Chương trình logic thông thường

Định nghĩa 1.11 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 ← B 1 ,…,B m , not C 1 ,…, not C n

trong đó n,m 0, A và B i , C j là các nguyên tố

Chú ý trong thân mệnh đề chứa các literal phủ định not C 1 ,…, not C n

Giá trị chân lý của literal âm là ngược với giá trị chân lý của literal dương của

Trang 18

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 hoặc phủ định mặc

Định nghĩa 1.12 (Phép biến đổi Gelfond – Lifschitz) [7] 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 P M là chương trình nhận được từ ground(P) bằng cách loại bỏ:

1 Các mệnh đề 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 mệnh đề còn lại.

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

Mặt khác, nếu A M thì not A có thể giả sử là đúng và được loại bỏ khỏi

Trang 19

Và mô hình nhỏ nhất của chính là {a,c}.

Xét thể hiện M 1 = {a,c} và M 2 = {b} Thu gọn gồm 1 mệnh đề:

b ←

Và mô hình nhỏ nhất của chính là {b}.

Định nghĩa 1.13 (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 P M

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

Xét M 2 = {s} Khi đó, gồm các mệnh đề: s và f ← s Mô hình nhỏ nhất của là {s, f} M 2 Vậy M 2 không là mô hình bền vững của P.

1.2.3 Các tính chất ngữ nghĩa

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ềnvữ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

Trang 20

Định lý 1.3 [7] 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.2 [7] Các mô hình bền vững là không thể so sánh với nhau được,

nghĩa là nếu M 1 và M 2 là các mô hình bền vững của chương trình logic P thì

mặc định not)

Trang 21

Chương 2 NGÔN NGỮ A-PROLOG

Chương 2 trình bày về ngôn ngữ A-Prolog [4] [5] A-Prolog là ngônngữ lập trình logic có dạng khai báo dựa trên ngữ nghĩa tập trả lời của chươngtrình logic A-Prolog có thể được biểu diễn các kiểu tri thức khác nhau trongthế giới thực Trong ngôn ngữ A-Prolog có sự xuất hiện của phép phủ địnhtrong các quy tắc Sau đây sẽ trình bày về phép phủ định trong A-Prolog

2.1 Phủ định mặc định và phủ định mạnh

Trang 22

Các chương trình logic xác định biểu diễn cho tri thức dương và chophép mô hình hóa khá nhiều bài toán khác nhau, các mệnh đề trong chươngtrì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ấutrú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ế

Ta đã định nghĩa các chương trình logic thông thường, nghĩa là các

chương trình logic cho phép phủ định mặc định (not) xuất hiện trong các thân quy tắc Ngữ nghĩa tự nhiên của not a là “nếu a không thể được chứng minh

là đúng bằng cách áp dụng các quy tắc thì mặc định not a được xem là đúng” Nhưng điều này là khác với “biết chắc rằng a sai” và được biểu diễn bởi a Ta

xem ví dụ sau để phân biệt phủ định mạnh và phủ định mặc định:

Ví dụ 2.1 Giả sử ta đã có quy định: “Ở tại vị trí đường sắt giao nhau, có thể đi

bộ băng qua đường sắt nếu không có chuyến tàu nào đến” và có đối tượng A đang đứng ở vị trí đường sắt giao nhau L nào đó, A muốn đi bộ băng qua

đường sắt Có thể mã hoá điều này bằng hai quy tắc sau:

dibo ← vitri(A,L), duongsat(L), not tauhoa(L) (1)

dibo ← vitri(A,L), duongsat(L), tauhoa(L) (2)

Nếu sử dụng quy tắc (1) thì A không nghĩ rằng tauhoa(L) là đúng, lúc

đó A sẽ quyết định đi bộ băng qua đường sắt mặc dù A không biết chắc là không có chuyến tàu nào đến Tri thức của A có thể cập nhật lại, nếu ta thêm vào sự kiện tauhoa(L) đúng thì A sẽ từ chối đi bộ qua đường sắt.

Còn nếu dùng quy tắc (2) thì A chỉ có thể đi bộ băng qua đường sắt nếu

A biết chắc chắn là không có chuyến tàu nào đến Rõ ràng việc quyết định của

A sẽ “an toàn” khi dùng quy tắc (2) Tuy nhiên quy tắc (1) lại phản ánh rõ

Trang 23

ràng về tri thức của A là không thể biểu diễn trạng thái của thế giới một cách

đầy đủ

Có một cách để biểu diễn thông tin âm bằng cách dùng nguyên tố phủđịnh mạnh, trong đó chỉ rõ các sự kiện trong cơ sở tri thức, chẳng hạn, sự kiện

broken(battery) để chỉ battery là không bị hỏng Nếu tri thức này được dùng

để kết luận broken(battery) trong một quy tắc khác thì có thể dẫn đến sự

không nhất quán và dẫn đến việc loại bỏ tất cả các mô hình dựa trên cơ sở trithức đó

Một áp dụng có ích đối với phủ định mạnh là kết hợp với phủ định mặc

định để biểu diễn quy tắc mặc định, chẳng hạn ta có thể biểu diễn quy tắc mặc

định

flies(X) ← bird(X), not flies(X)

với ý nghĩa “theo mặc định, mọi con chim đều bay”

Trong chương 2 ta sẽ dùng một số ký hiệu sau đây:

l là ngược của literal

Tập {not l i ,…,not l i+k } được ký hiệu not {l i ,…,l i+k } Nếu r là quy tắc có

dạng (1), ta ký hiệu:

head(r) = {l 0},

pos(r) = {l 1 ,…l m},

neg(r) = {l m+1 ,…l n},

Trang 24

body(r) = pos(r) not neg(r).

Định nghĩa 2.2 Chương trình Prolog là một tập hữu hạn các quy tắc

lit(P) là tập tất cả các literal nền được xây dựng từ các vị từ trong P.

2.3 Ngữ nghĩa của chương trình A-Prolog

Ngữ nghĩa tập trả lời của chương trình A-Prolog P là một tập các tập trả lời, đó là một tập nhất quán các literal nền của P Định nghĩa các tập trả lời sẽ được thực hiện trước hết đối với chương trình A-Prolog P không chứa phủ định mặc định not

Ta nói rằng một tập các literal nền X của P là đóng trong P nếu với mọi quy tắc head ← body của P thì head đúng trong X khi body đúng trong X.

Định nghĩa 2.3 [4] (Tập trả lời – phần 1) Cho P là chương trình A-Prolog,

không chứa ký hiệu phủ định not và X là một tập các literal nền của P X được gọi là tập trả lời của P nếu X là tập cực tiểu trong tập các tập đóng của P.

Rõ ràng mọi chương trình A-Prolog mà không chứa phủ định mặc định

sẽ có nhiều nhất một tập trả lời Các định nghĩa sau để mở rộng định nghĩatrên đối với chương trình A-Prolog tuỳ ý

Định nghĩa 2.4 Cho P là chương trình A-Prolog bất kỳ, X là tập các literal

nền của P Thu gọn của P theo X, ký hiệu P X là tập các quy tắc:

l 0 ← l 1 ,…l m

đối với mọi quy tắc có dạng (1) của P sao cho l m+1 ,…,l n X.

Trang 25

Như vậy P X là chương trình không chứa phủ định mặc định.

Định nghĩa 2.5 [4] (Tập trả lời – phần 2) Cho P là chương trình A-Prolog và

X là một tập các literal nền của P X được gọi là tập trả lời của P nếu X là tập trả lời của chương trình thu gọn P X

Định nghĩa 2.6 Chương trình A-Prolog P suy dẫn literal nền l, ký hiệu Pl, nếu

l thuộc mọi tập hợp của P Câu trả lời của P đối với truy vấn l là Yes nếu Pl,

no nếu P ngoài ra là unknown.

Ví dụ 2.2 Xem chương trình A-Prolog P như sau:

p(a) ← not q(a)

p(b) ← not q(b)

q(a)

Dùng định nghĩa của tập trả lời, dễ thấy P chỉ có một tập trả lời là S = {q(a), p(b)} Như vậy đối với truy vấn q(a) thì câu trả lời là yes và truy vấn q(b) là unknown.

Nếu ta thêm vào chương trình P quy tắc sau:

Ví dụ 2.4 Xem chương trình A-Prolog sau:

p(a) ← not p(a)

p(a) ← not p(a)

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Lê Mạnh Thạnh – Trương Công Tuấn (2011), Giáo trình chương trình Datalog, Nhà xuất bản Đại học Huế.TIẾNG ANH Sách, tạp chí
Tiêu đề: Giáo trình chương trình"Datalog
Tác giả: Lê Mạnh Thạnh – Trương Công Tuấn
Nhà XB: Nhà xuất bản Đại học Huế.TIẾNG ANH
Năm: 2011
3. Jose Julio Alferes, Luis Moniz Pereira (2006), Reasoning with Logic Programming, Springer-Verlag, Berlin Heidelberg NewYork, London Paris Tokyo, Hong Kong Barcelona, Budapest Sách, tạp chí
Tiêu đề: Reasoning with Logic"Programming
Tác giả: Jose Julio Alferes, Luis Moniz Pereira
Năm: 2006
4. Micheal Gelfond (2002), “Representing Knowledge in A-Prolog”, Volume 2408 of Computational Logic: Logic Programming and Beyond, Essays in Honour of Robert A. Kowalski Sách, tạp chí
Tiêu đề: Representing Knowledge in A-Prolog
Tác giả: Micheal Gelfond
Năm: 2002
5. Michael Gelfond and Nicola Leone (2002). “Logic Programming and Knowledge Representation – the A-Prolog prespective”. Department of Computer Science, Texas Tech University Lubbock, Texas, 79409-3104 and Department of Mathematics, University of Calabria, 87030 Rende (CS), Italy Sách, tạp chí
Tiêu đề: Logic Programming andKnowledge Representation – the A-Prolog prespective"”
Tác giả: Michael Gelfond and Nicola Leone
Năm: 2002
6. Michael Bartholomew and Joohyung Lee(2012), Stable models of formulas with intensional functions. In Proceedings of International Conference on Principles of Knowledge Representation and Reasoning (KR), pages 2–12 Sách, tạp chí
Tiêu đề: Stable models of"formulas with intensional functions
Tác giả: Michael Bartholomew and Joohyung Lee
Năm: 2012
7. M. Gelfond, V. Lifschitz (1988), “The stable model semantics for logic programming”, In Proceedings of the 5 th International Conference on Logic Programming, Seattle, USA, The MIT Press, pp. 1070-1080 Sách, tạp chí
Tiêu đề: The stable model semantics for logicprogramming”, "In Proceedings of the 5"th" International Conference on Logic"Programming
Tác giả: M. Gelfond, V. Lifschitz
Năm: 1988
8. Paolo Ferraris, Joohyung Lee, and Vladimir Lifschitz(2011), Stable models and circumscription. Artificial Intelligence, 175:236–263 Sách, tạp chí
Tiêu đề: Stable"models and circumscription
Tác giả: Paolo Ferraris, Joohyung Lee, and Vladimir Lifschitz
Năm: 2011
9. Thomas Eiter, Giovambattista Ianni and Thomas Krennwallner, (2013), “ Answer Set Programming: A Primer”, Institut fur Informations systeme, Technische Universit at Wien Favoritestrabe 9-11 Sách, tạp chí
Tiêu đề: Answer Set Programming: A Primer
Tác giả: Thomas Eiter, Giovambattista Ianni and Thomas Krennwallner
Năm: 2013
10. Vladimir Lifschitz, Leora Morgenstern, and David Plaisted (2008).Knowledge representation and classical logic. In Frank van Harmelen, Vladimir Lifschitz, and Bruce Porter, editors, Handbook of Knowledge Representation, pages 3–88 Sách, tạp chí
Tiêu đề: Knowledge representation and classical logic
Tác giả: Vladimir Lifschitz, Leora Morgenstern, and David Plaisted
Năm: 2008

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w