Cú pháp và ngữ nghĩa tập trả lời của chƣơng trình logic mở rộng

Một phần của tài liệu (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 (Trang 29 - 32)

Định nghĩa 2.2 [10] Một chƣơng trình logic mở rộng (ELP) là một tập hữu hạn các quy tắc có dạng:

l0l1,...,lm, not lm+1,...,not ln (2.1)

trong đó n  1, l0 là literal hoặc false và tất cả các li là các literal, not là ký hiệu của phủ định mặc định. Literal mở rộng là một biểu diễn có dạng l hoặc not l. Trong quy tắc (2.1) nếu l0 là false thì nó đƣợc gọi là một ràng buộc và

false có thể bỏ qua.

Trừ khi có quy định khác, ta giả sử các literal trong quy tắc (2.1) đều là literal nền.

Trong chƣơng 2 ta sẽ sử dùng một số ký hiệu sau đây: ̅ là ngƣợc của literal l.

Tập{not li,...,not li+k} đƣợc ký hiệu not {li,...,li+k}. Nếu r là quy tắc có dạng (1) thì:

head(r) = {l0},

pos(r) = {l1,...,lm},

neg(r) = {lm+1,...,ln},

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

Với P là chƣơng trình logic mở rộng thì:

head(P) =∪rPhead(r),

pos(P) =∪rPpos(r),

neg(P) =∪rPneg(r).

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

Định nghĩa 2.3 [10] Cho P là chƣơng trình logic mở rộng, X là một tập các litral nền. Lúc đó llit(P) là đúng trong X nếu lX; lsai trong X nếu ̅ ; ngƣợc lại lchưa biết. False là sai trong X.

Ngữ nghĩa tập trả lời của chƣơng trình logic mở rộng 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 [10]. Định nghĩa chính xác các tập trả lời sẽ đƣợc thực hiện trƣớc hết đối với chƣơng trình logic mở rộng 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đóng trong P nếu với mọi quy tắc headbody của P

thì head đúng trong X khi body đúng trong X.

Định nghĩa 2.4 [10] (Tập trả lời – phần 1) Cho P là chƣơng trình logic mở rộng, không chứa ký hiệu phủ định not và X là một tập các litral 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

Rõ ràng mọi chƣơng trình logic mở rộng 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ĩa trên đối với chƣơng trình logic tùy ý.

Định nghĩa 2.5 [10] Cho P là chƣơng trình logic mở rộng 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 PX là tập các quy tắc:

l0l1,...,lm

đối với mọi quy tắc có dạng (1) của P sao cho lm+1,...,lnX. Nhƣ vậy PX là chƣơng trình không chứa phủ định mặc định.

Định nghĩa 2.6 [10] (Tập trả lời – phần 2) Cho P là chƣơng trình logic mở rộng và X là một tập các litral 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 PX.

Định nghĩa 2.7 [10] Chƣơng trình logic P suy dẫn literal nền l, ký hiệu P l, nếu l thuộc mọi tập trả lời của P. Câu trả lời của P đối với truy vấn lYes

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

Định nghĩa này còn đƣợc xem là giả thiết thế giới đóng (CWA) đối với chƣơng trình logic mở rộng.

Ví dụ 2.3 Xem chƣơng trình logic 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: q(X)  not q(X)

thì đối với chƣơng trình mới này sẽ có tập trả lời là S = {q(a), q(b),

p(b)}, nhƣ vậy câu trả lời đối với truy vấn q(b) là trở thành no.

Một chƣơng trình có thể có nhiều hơn một tập trả lời hoặc không có tập trả lời nào cả.

Ví dụ 2.4 Các chƣơng trình sau không có tập trả lời: P1 = { p not p}, P2 = {p, p}

Ví dụ 2.5 Xem chƣơng trình sau:

p(a)  not p(a)

p(a)  not p(a)

Chƣơng trình này có hai tập trả lời là {p(a)} và {p(a)}. Nhƣ vậy P

không thể suy dẫn literal p(a).

Trong phần tiếp theo trình bày một số tính chất của tập trả lời.

Một phần của tài liệu (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 (Trang 29 - 32)

Tải bản đầy đủ (PDF)

(73 trang)