Đồng nhất thể lớn nhất

Một phần của tài liệu Giáo trình Logic chuyên ngành (Giáo trình dành cho sinh viên ngành Triết học) (Trang 81 - 83)

V. Hệ suy luận tự nhiên của logic vị từ

2. Đồng nhất thể lớn nhất

80 variable(l1) σ = { } l1 = l2 l1 occurs inl2 {l1 /l2} fail {}

Đồng nhất thể lớn nhất (ký hiệu mgu, từ cụm từmost general unifier) của hai công thức là phép thế lớn nhất trong tất cả các đồng nhất thể của hai công thức đó.

Người ta đã chứng minh được định lý làm cơ sở cho phương pháp hợp giải sau đây.

Định lý 4.2Với hai công thức bất kỳ, nếu chúng khảđồng nhất thì chúng có đồng nhất thể lớn nhất. Đồng nhất thể lớn nhất đó duy nhất tính cho đến phép đổi biến - nghĩa là khi không phân biệt hai phép thế δγ nếu tồn tại phép đổi biến τ sao cho (range(γ))τ = (range(δ))τ (domain(γ))τ = (domain(δ))τ.

Ta có một thuật toán đơn giản để tìm đồng nhất thể lớn nhất của hai công thức bất kỳ, nếu đồng nhất thể lớn nhất đó tồn tại, nghĩa là nếu hai công thức đó khảđồng nhất.

Trước hết ta hãy biểu diễn một công thức bất kỳ dưới dạng một chuỗi ký tự. Các ký tự vị từ, hằng đối tượng, biến đối tượng có mặt trong công thức và không nằm dưới dấu hàm đối tượng

được coi là phần tử của chuỗi. Thứ tự sắp xếp của chuỗi tính từ trái qua phải. Các hạn từđược cấu tạo từ ký hiệu hàm đối tượng được coi là một chuỗi con của chuỗi ban đầu. Như vậy một công thức có thểđược biểu diễn thành một chuỗi có chứa hoặc không chứa các chuỗi con. Các chuỗi con cũng có thể chứa các chuỗi con của mình. Ví dụ, công thức P(a,x,y) tương ứng với chuỗi

P a x y

còn công thức P(a,f(b,x),y) thì tương ứng với chuỗi: P a y

f b x

Các ký tự hàm đối tượng, biến đối tượng, vị từ là các hằng. Thuật toán xác định đồng nhất thể

lớn nhất của hai công thức bất kỳđã được biểu diễn thành hai chuỗi ký tự l1 và l2 như sau 1 :

l1, l2

1 Lưu đồ (FLOWCHART) của thuật tóan này chúng tôi dẫn theo M. Genesereth, Computational logic http://logic.stanford.edu/~cs157/notes/chap09.html http://logic.stanford.edu/~cs157/notes/chap09.html

Với các công thức đầu vào đã được biểu diễn dưới dạng các chuỗi ll và l2 quy trình bắt đầu với

đồng nhất thể lớn nhất σ = { }. Nếu l1 = l2 thì quy trình kết thúc, kết quả là đồng nhât thể rỗng. Nếu l1 và l2đều là hằng (hằng đối tượng, ký tự vị từ, ký tự hàm đối tượng, ký tự chỉ các liên từ

logic) thì quy trình cũng kết thúc, l1 và l2 không khả đồng nhất. Nếu l1 là biến thì quy trình sẽ

kiểm tra xem ll có trong l2 hay không. Nếu l1 có trong l2 thì l1 và l2 không khảđồng nhất, quy trình kết thúc. Còn nếu l1 không có trong l2 thì đồng nhất thể lớn nhất là { l1/l2}. Cũng tương tự

như thế với trường hợp l2 là biến. Trường hợp còn lại là trường hợp khi cả l1 và l2đều là các biểu thức phức tạp. Khi đó quy trình sẽ xử lý từng cặp ký tự tính từ bên trái bằng cách gọi đệ

quy chính mình. Nếu lần gọi đệ quy thành công với kết quả là phép thế τ thì σ được thay bằng τ, τ cũng được áp dụng vào phần còn lại của các chuỗi l1 và l2. Nếu lần gọi đệ quy thất bại thì toàn bộ quy trình kết thúc thất bại, l1 và l2 không khảđồng nhất.

Một phần của tài liệu Giáo trình Logic chuyên ngành (Giáo trình dành cho sinh viên ngành Triết học) (Trang 81 - 83)

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

(115 trang)