D trên cơ sở dựa vào việc cải tiến và phát triển thuật toán CHARM.
2.3.3.1.Ý tưởng thuật toán
Thuật toán được tiến hành theo hai bước. Trước hết sử dụng thuật toán CHARM để tìm tập phổ biến đóng cực đại với các mục dữ liệu dương từ CSDL tác vụD. Mỗi khi tìm được tập phổ biến đóng cực đại X trong tệp dữ liệu này thì khởi tạo và thực hiện bước thứ 2 bằng cách duyệt các cặp ràng buộc mục dữ liệu âm, nếu tập thứ nhất của cặp này nằm trong tập X thì bổ sung tập thứ hai của cặp ràng buộc vào một tập mà sau này sẽ trở thành tập phổ biến đóng cực đại có mục dữ liệu âm trong tập dữ liệu D.
2.3.3.2. Thuật toán NC-CHARM
Thuật toán tìm các tập phổ biến đóng với ràng buộc mục dữ liệu âm được gọi là thuật toán NC-CHARM (Negative Constrains – CHARM). Giả ngôn ngữ của thuật toán được thể hiện trong hình 2.8.
Độ phức tạp của thuật toán NC-CHARM: So với thuật toán CHARM thì thuật toán này khác ở phần từ lệnh 10 đến lệnh 13. Đây là phần thực hiện tiếp theo phần thực hiện phép giao. Câu lệnh này được thực hiện bằng số phần tử trong tập ràng buộc mục dữ liệu âm (|Á|) đối với mỗi tập đóng tìm được, do đó tổng chi phí thực hiện phép so sánh là (|Á|.|C|). Kết hợp với độ phức tạp của thuật toán CHARM ta có độ phức tạp của NC-CHARM là O(l. |Á|).|C|) với l là độ dài trung bình của các
78
Hình 2.8: Thuật toán NC-CHARM
Ở đây g là một phép kết nối Galois, k là một phép sắp thứ tự (theo thứ tự từ
vựng hoặc theo độ hỗ trợ) cho các mục dữ liệu. Hàm CHARM-PROPERTY được xây dựng như trong [94].