Lớp các chƣơng trình với ngữ nghĩa mô hình hoàn hảo bị hạn chế trên các chƣơng trình phân tầng hoặc phân tầng địa phƣơng. Ngữ nghĩa mô hình bền vững (stable model semantics) là sự mở rộng ngữ nghĩa mô hình hoàn hảo, đƣợc đề xuất bởi Gelfond và Lifschitz [18]. Ngữ nghĩa mô hình bền vững dựa trên cơ sở phép biến đổi chƣơng trình đƣợc gọi là phép biến đổi Gelfond-Lifschitz. Phép biến đổi này tạo ra một chƣơng trình logic dƣơng từ chƣơng trình logic và thể hiện đã cho.
Định nghĩa 1.27 [18] Giả sử P là chƣơng trình Datalog và mỗi quy tắc của P đƣợc
thay thế bởi các hiện hành của quy tắc. Đối với mỗi thể hiện I của P, phép biến đổi Gelfond-Lifschitz của P theo I, ký hiệu P1, là chƣơng trình nhận đƣợc từ P bằng cách:
Loại bỏ các quy tắc có chứa đích con q với q I. Xoá các đích con phủ định trong thân các quy tắc còn lại.
Rõ ràng P1 là chƣơng trình logic không chứa phủ định, vì vậy P1 có duy nhất một mô hình cực tiểu, ký hiệu Sp(I).
Chú ý: Sp(I) chính là điểm bất động nhỏ nhất của toán tử hệ quả trực tiếp TP: 2Bp 2Bp
đƣợc xác định bởi: ( )
I
P
T I = {A/ (A B1 B2 … Bm) PI và Bi I, i=1, …, m}
Định nghĩa 1.28 [18] Một thể hiện I của chƣơng trình Datalog P đƣợc gọi là tập bền
vững của P nếu Sp(I) = I.
Mệnh đề 1.7 [18] Mọi tập bền vững của P đều là mô hình cực tiểu P.
Mệnh đề này cho phép ta gọi các tập bền vững là các mô hình bền vững.
Định nghĩa 1.29 [18] Nếu chƣơng trình Datalog P có đúng một mô hình bền vững thì
mô hình này đƣợc xem là ngữ nghĩa của P.
Ví dụ 1.15 Xem chƣơng trình sau:
q(1,2)
Cho I = {q(1,2), p(1)}. Phép biến đổi Gelfond-Lifchitz P1 là chƣơng trình: P1 = {q(1, 2) , p(1) q(1,2), p(2) q(2,2)}
Rõ ràng mô hình cực tiểu của P1 là {q(1, 2) , p(1)}, nó chính là I. Vậy I là mô hình bền vững của P.
Chú ý:
Ví dụ sau đây cho ta thấy rằng một chƣơng trình có thể không có ngữ nghĩa mô hình hoàn hảo nhƣng lại có ngữ nghĩa mô hình bền vững.
Ví dụ 1.16 Xem chƣơng trình:
P = {p q, q p, p p}
Chƣơng trình này có mô hình bền vững duy nhất là {p} nhƣng không có mô hình hoàn hảo.
Một chƣơng trình có thể không tồn tại mô hình bền vững hoặc cũng có thể có nhiều hơn một mô hình bền vững.
Ví dụ 1.17 Xét chƣơng trình chỉ gồm một quy tắc: p q
Chƣơng trình này không có mô hình bền vững, bởi vì ta luôn luôn có P{ } = {p} và P{p} = .
Ví dụ 1.18 Xét chƣơng trình gồm hai quy tắc:
P = {p q, q p}
Chƣơng trình này có hai mô hình bền vững là {p} và {q}.
Ví dụ 1.19
Xem chƣơng trình sau:
P = {p(1,2) , p(2,1) , q(X) p(X, Y) p(Y)}
P có hai mô hình bền vững: {p(1,2), p(2,1), q(1)} và {p(1,2), p(2,1), q(2)}
Khi thêm vào P các quy tắc mới độc lập với các quy tắc cũ của P thì có thể dẫn tới việc thay đổi kết quả của chƣơng trình cũ.
P = {p q r t, p q, q p r t, r t, t } Với I={p, r, t}, ta có P1 = {p , r t, t }
Vậy Sp(I) = {p, r, t}. Vậy I là mô hình bền vững của P. Bây giờ nếu ta thêm một quy tắc mới u u vào P, lúc này P không có mô hình bền vững.
Sau đây là một số tính chất của mô hình bền vững:
Mệnh đề 1.8 [18] Đối với các chƣơng trình Datalog P không chứa phủ định thì mô
hình nhỏ nhất của P chính là mô hình bền vững duy nhất.
Định lý 1.6 [18] Nếu P là chƣơng trình Datalog phân tầng thì P có duy nhất mô hình
bền vững và mô hình này đồng nhất với mô hình hoàn hảo của P.
Định lý 1.7 Bài toán kiểm định thể hiện M là mô hình bền vững của chƣơng trình
Datalog P đƣợc thực hiện với thời gian đa thức.
Chứng minh: Rõ ràng PM đƣợc tính với thời gian đa thức. Mặt khác PM là chƣơng trình Datalog, vì vậy việc kiểm định M là mô hình nhỏ nhất của PM đƣợc thực hiện với thời gian đa thức.[]
Để kết thúc phần này, ta có một số nhận xét: hai dạng ngữ nghĩa đƣợc thảo luận ở trên chỉ đƣợc định nghĩa đối với một lớp hạn chế các chƣơng trình logic. Mặc dù ngữ nghĩa mô hình bền vững là mở rộng của ngữ nghĩa mô hình hoàn hảo nhƣng việc tính toán mô hình bền vững không đơn giản và đòi hỏi chi phí cao; hơn nữa mô hình bền vững có thể không tồn tại.