thuộc tính đối với tập phụ thuộc hàm).
Cho trƣớc một tập các phụ thuộc hàm mờ của một quan hệ, khóa mờ của quan hệ có thể tìm đƣợc nhờ sử dụng khái niệm bao đóng bắc cầu. Bao đóng bắc cầu (mà sau đây ta sẽ gọi ngắn gọn là bao đóng) đƣợc sử dụng khi ta muốn biết liệu một phụ thuộc hàm mờ có thể suy diễn logic từ tập phụ thuộc hàm mờ F sử dụng tập quy tắc suy diễn hay không. Tuy nhiên không đơn giản để tính đƣợc tập tất cả
các phụ thuộc hàm mờ suy diễn từ F, bởi vì nó có thể là vô hạn. Thay cho việc tính toán toàn bộ tập này, thuật toán sau đây tìm ra tất cả các thuộc tính phụ thuộc hàm vào tập thuộc tính X, và cấp độ lớn nhất để các phụ thuộc là đúng, và ta gọi tập thuộc tính này là bao đóng của X đối với tập phụ thuộc hàm mờ F.
Thuật toán 2.1: Tìm bao đóng của tập thuộc tính đối với tập phụ thuộc hàm
Vào: Cho X là một tập k thuộc tính, X = X1X2...Xk, F là tập phụ thuộc hàm mờ Ra: Bao đóng của X đối với F
Thuật toán
1. Bƣớc đầu khởi tạo bao đóng XList của X, bao gồm các thuộc tính của
X có cấp độ cực đại, bằng 1.
XList = {(X1,1),(X2,1),...,(Xk,1)}
Miền Dom, ban đầu bao gồm các thuộc tính trong XList: X1,X2,..,Xk. BList là bao đóng tạm, lúc đầu đƣợc khởi tạo rỗng
2. Với mỗi phụ thuộc hàm mờ VW
Nếu vế trái V là tập con của Dom, V Dom
Tìm trong danh sách XList trong số những thuộc tính thuộc V, thuộc tính có cấp độ nhỏ nhất, gọi là giá trị nhỏ nhất đó là minstrength. Đặt bằng giá trị nhỏ nhất trong hai giá trị và minstrength.
= min(,minstrength)
Với mỗi thuộc tính Wj của vế phải, W, thêm thành phần (Wj,) vào danh sách BList.
3. Tổ hợp BList với XList bằng phép hợp mờ
4. Nếu sau khi tổ hợp XList có thay đổi, khởi tạo lại BList bằng rỗng, điều chỉnh lại giá trị Dom theo danh sách XList mới, quay lại bƣớc 2. Nếu không, XList là bao đóng của X đối với F.
Ví dụ 2.4: Sử dụng ví dụ 2.3, ta có lƣợc đồ quan hệ R với bốn thuộc tính (A,B,C,D), các phụ thuộc hàm là A 0.6 B và A 0.8 CD. Ta thử tính xem bao đóng của thuộc tính A đối với tập phụ thuộc hàm mờ này.
Bƣớc đầu
XList = {(A,1)}, Dom={A}, BList =
Với phụ thuộc hàm đầu tiên, A 0.6 B
Minstrength = 1, = min(1,0.6) = 0.6 BList = {(B,0.6)}
Với phụ thuộc hàm thứ hai, A 0.8 CD
minstrength = 1, = min(1,0.8) = 0.8 BList = {(B,0.6),(C,0.8), (D,0.8)}
Tổ hợp BList với XList, XList ={(A,1),(B,0.6),(C,0.8),(B,0.8)}. Vì XList có thay đổi, nên ta khởi tạo lại BList bằng rỗng, miền giá trị mới là, Dom={A,B,C,D}. Và hai phụ thuộc hàm lại đƣợc kiểm tra giống nhƣ trên. Nhƣng lần này, sau khi tổ hợp, XList không có thay đổi gì, nên bao đóng của A là {(A,1),(B,0.6),(C,0.8),(D,0.8)}.