Rate this post

Unification là một quá trình làm cho hai biểu thức nguyên tử lôgic khác nhau giống hệt nhau bằng cách tìm một phép Substitution. Sự Unification phụ thuộc vào quá trình Substitution.

Nó nhận hai ký tự làm đầu vào và làm cho chúng giống hệt nhau bằng cách sử dụng thay thế.

Các bài viết liên quan:

Gọi Ψ1 và Ψ2 là hai câu nguyên tử và 𝜎 là một Unification sao cho Ψ1𝜎 = Ψ2𝜎, thì nó có thể được biểu thị là UNIFY (Ψ1, Ψ2).

Ví dụ: Tìm MGU cho Unify {King (x), King (John)}

Cho Ψ1 = King (x), Ψ2 = King (John),

Substitution θ = {John / x} là một phép Unification cho các nguyên tử này và áp dụng Substitution này, cả hai biểu thức sẽ giống hệt nhau.

Thuật toán UNIFY được sử dụng để Unification, lấy hai câu nguyên tử và trả về một từ Unification cho những câu đó (Nếu có).

Unification là một thành phần quan trọng của tất cả các thuật toán suy luận bậc nhất.

Nó trả về lỗi nếu các biểu thức không khớp với nhau.

Các biến thay thế được gọi là Most General Unifier hoặc MGU.

Ví dụ. Giả sử có hai biểu thức khác nhau, P (x, y) và P (a, f (z)).

Trong ví dụ này, chúng ta cần phải làm cho cả hai câu lệnh trên giống hệt nhau. Đối với điều này, chúng tôi sẽ thực hiện thay thế.

            P (x, y) ……… (i)

            P (a, f (z)) ……… (ii)

Thay x bằng a và y bằng f (z) trong biểu thức đầu tiên và nó sẽ được biểu diễn dưới dạng a / x và f (z) / y.

Với cả hai phép thay thế, biểu thức đầu tiên sẽ giống với biểu thức thứ hai và tập hợp thay thế sẽ là: [a / x, f (z) / y].

Điều kiện Unification:

Sau đây là một số điều kiện cơ bản để Unification:

  • Ký hiệu vị ngữ phải giống nhau, các nguyên tử hoặc biểu thức với ký hiệu vị ngữ khác nhau không bao giờ có thể Unification.
  • Số đối số trong cả hai biểu thức phải giống nhau.
  • Việc Unification sẽ không thành công nếu có hai biến giống nhau xuất hiện trong cùng một biểu thức.

Thuật toán Unification:

Thuật toán: Unify (Ψ1, Ψ2)

Thuật toán: Unify (Ψ1, Ψ2)

Bước 1: Nếu Ψ1 hoặc Ψ2 là một biến hoặc hằng số, thì:
a) Nếu Ψ1 hoặc Ψ2 giống nhau thì trả về NIL.
b) Khác nếu Ψ1 là một biến,
  a. sau đó nếu Ψ1 xảy ra trong Ψ2, thì trả về FAILURE
  b. Trả lại khác {(Ψ2 / Ψ1)}.
c) Khác nếu Ψ2 là một biến,
  a. Nếu Ψ2 xảy ra trong Ψ1 thì trả về FAILURE,
  b. Trả về khác {(Ψ1 / Ψ2)}.
d) Trả lại khác THẤT BẠI.
Bước 2: Nếu ký hiệu Vị ngữ ban đầu trong Ψ1 và Ψ2 không giống nhau, thì trả về FAILURE.
Bước 3: IF Ψ1 và Ψ2 có số đối số khác nhau thì trả về FAILURE.
Bước 4: Đặt Bộ thay thế (SUBST) thành NIL.
Bước 5: Cho i = 1 vào số phần tử trong Ψ1.
a) Gọi hàm Unify với phần tử thứ i của Ψ1 và phần tử thứ i của Ψ2, và đưa kết quả vào S.
b) Nếu S = fail thì trả về Failure
c) Nếu S ≠ NIL thì làm,
  a. Áp dụng S cho phần còn lại của cả L1 và L2.
  b. SUBST = APPEND (S, SUBST).
Bước 6: Trả lại SUBST.

Leave a Reply

Call now
%d bloggers like this: