Giải thuật tableaux

Một phần của tài liệu Logic mô tả ứng dụng trong web ngữ nghĩa (Trang 27 - 31)

Như mục trên trình bày, các bài toán cơ bản trên có thể chuyển về bài toán bao hàm. Để giải quyết bài toán bao hàm, ban đầu, người ta đã đưa ra thuật toán cấu trúc. Song đây là một thuật toán đơn giản nên nó không giải quyết tốt trong các trường hợp phức tạp như khi có phép giao C D, phủ định với khái niệm phức tạp C, phép tồn tại R.C. Một trong những hướng tiếp cận thay thế cho thuật toán cấu trúc trong tình huống này là thuật toán Tableau.

Thuật toán Tableau có ý tưởng dựa trên việc chuyển một bài toán quyết định bao hàm thành bài toán quyết định không thoả, có nghĩa là: việc giải quyết bài toán C D thành việc giải quyết bài toán C⊓D là không thoả.

Xét với bài toán thoả khái niệm D trong cơ sở tri thức =(T, R, A), trước khi áp dụng giải thuật Tableau ta phải thực hiện chuẩn hoá TBox T, nghĩa là đưa tất cả các tiên đề thuật ngữ của T về dạng định nghĩa khái niệm (như đã trình bày ở 1.4.1). Sau đó ta đưa tất cả các mô tả khái niệm trong TBox về dạng chuẩn phủ định (NNF), có nghĩa là ta đưa các dấu phủ định vào trước các khái niệm nguyên thuỷ (giả sử C, D) theo các luật sau:

Khái niệm phức Dạng chuẩn NNF

(C ⊓ D) C ⊔ D

(C ⊔D) C ⊓ D

R.C R.C

Sau đó, ta thay các định nghĩa khái niệm trong TBox đã ở dạng chuẩn phủ định vào ABox, và như vậy ta sẽ coi TBox =. Khi đó ta chỉ lập luận với ABox được khai triển thành các khẳng định chỉ có các mô tả của các khái niệm nguyên thuỷ, và các mô tả khái niệm ở dạng chuẩn phủ định. Với ALC

thì RBox=, chưa có các tiên đề quan hệ phức tạp.

Tiếp theo, giải thuật Tableau kiểm tra tính thoả của khái niệm D bằng cách xây dựng một mô hình của D. Mô hình của D thường được biểu diễn bởi cây đầy đủ T: các nút của T biểu diễn các cá thể của mô hình; mỗi nút x được gán nhãn L(x), là một tập khái niệm con của D; mỗi cạnh <x, y> được gán nhãn L(<x, y>), là tập các tên quan hệ trong D. Giải thuật Tableaux bắt đầu từ nút gốc x0 được gán nhãn L(x0)={D}. T được mở rộng bằng cách lặp lại việc áp dụng các luật lan truyền, bằng cách mở rộng các nhãn của nút hoặc là thêm vào những nút lá mới. Các luật lan truyển đó tương ứng với các toán tử logic cũng như là các tiên đề quan hệ đã cung cấp bởi các ngôn ngữ mô tả riêng.

Luật Điều kiện Thực hiện

⊓ C1⊓C2 L(x) và {C1, C2}  L(x) L(x)=L(x)  {C1,C2} ⊔ C1⊔C2 L(x) và {C1, C2}  L(x) =  L(x)=L(x)  {C1} hoặc L(x)=L(x)  {C2}  R.C  L(x) và không có nút y mà R L(<x,y>) và C L(y)

Tạo một nút y mới sao cho L(<x,y>)={R} và L(y)={C}  R.C  L(x) và có nút y nào đó mà RL(<x,y>) và CL(y) L(y)=L(y)  {C}

Việc kết thúc giải thuật khi T là đầy đủ, có nghĩa là không còn các luật lan truyền để có thể áp dụng hoặc khi xuất hiện một mâu thuẫn hiển nhiên.

Khái niệm là không thoả khi mọi mở rộng đều dẫn đến mâu thuẫn và là thoả nếu có thể có một mở rộng nào đó dẫn đến việc phát hiện ra một cây không mâu thuẫn là đầy đủ.

Ví dụ 1.6. Chứng minh: Me ChaMe. Xét với bộ thuật ngữ TBox ={ChaMe  Cha Me}

- Khi đó, ta phải chứng minh: Me ChaMe

- Chuyển về bài toán không thoả: Me⊓(ChaMe) là không thoả. - Xét khái niệm D= Me⊓(ChaMe) và biểu diễn mô tả khái niệm D ở dạng chuẩn phủ định ta có: D= Me⊓(Cha⊓Me)

- Xây dựng cây mô hình T cho khái niệm D:

Bắt đầu với nút x0 ta có L(x0) = { Me⊓(Cha⊓Me)}=

Như vậy xảy ra điều kiện mâu thuẫn (1). Do đó, khái niệm D là không thoả. Nghĩa là Me⊓(ChaMe) là không thoả hay Me ChaMe đã được chứng minh.

Điều kiện xảy ra mâu thuẫn của ALC:

Một nút x của cây hoàn thành T chứa mâu thuẫn nếu xảy ra ít nhất một trong hai điều kiện sau:

(1). L(x)

Đối với các ngôn ngữ có khả năng biểu diễn cao hơn, như họ ngôn ngữ

S, để đảm bảo sự kết thúc của giải thuật Tableaux, người ta sử dụng kỹ thuật chặn (blocking). Trước khi giải thích về kỹ thuật chặn này, chúng ta xem xét khái niệm nút cha và nút tổ tiên. Nút cha của nút y là nút x nếu <x, y> là một cạnh của T; nút tổ tiên là sự kết thúc bắc cầu của nút cha. Một nút y được coi là bị chặn nếu có một nút tổ tiên x nào đó mà L(y)  L(x); trong trường hợp này x được gọi là nút chặn. Việc sử dụng kỹ thuật chặn (trong trường hợp cuả

S) ngay khi một nút bị chặn thì các luật bổ sung sẽ không được tiếp tục áp dụng nữa và thuật toán kết thúc. Bảng 1.7 chỉ ra các luật lan truyền cho ngôn ngữ S (ALCR+), ALCR+ cung cấp các tiên đề quan hệ bắc cầu nên cần đến kỹ thuật chặn. Lưu ý rằng, các ngôn ngữ mô tả khác nhau có thể sử dụng các loại kỹ thuật chặn khác nhau.

Luật Điều kiện Thực hiện

⊓ C1⊓C2  L(x) và x chưa bị chặn và {C1, C2}  L(x) L(x)=L(x)  {C1,C2} ⊔ C1⊔C2  L(x) và x chưa bị chặn và {C1, C2}  L(x) =  L(x)=L(x)  {C1} hoặc L(x)=L(x)  {C2}  R.C  L(x) và x chưa bị chặn và Không có nút y mà R L(<x,y>) và C L(y)

Tạo một nút y mới sao cho L(<x,y>)={R} và L(y)={C}  R.C  L(x) và x chưa bị chặn và Có nút y nào đó mà RL(<x,y>) và CL(y) L(y)=L(y)  {C} + R.C  L(x) và x chưa bị chặn và RR+ và có y nào đó mà RL(<x,y>) và R.CL(y) L(y)=L(y)  {R.C}

Các ngôn ngữ mở rộng từ ngôn ngữ S, trong giải thuật Tableaux, các mô hình không chỉ được biểu diễn bởi các cây mà là các rừng. Các kỹ thuật chặn được chúng sử dụng sẽ phức tạp hơn kỹ thuật chặn được giới thiệu ở đây.

Một phần của tài liệu Logic mô tả ứng dụng trong web ngữ nghĩa (Trang 27 - 31)