Theo đánh giá của IBM, các phương pháp khai thác thông tin truyền thống chỉ thu được khoảng 80% thông tin từ CSDL, phần còn lại bao gồm các thông tin mang tính khái quát, thông tin có qu
Trang 1MỤC LỤC
MỤC LỤC 1
CHƯƠNG I TỔNG QUAN 3
1 Các Khái Niệm Cơ Bản 3
1.1 Khai phá dữ liệu (Data Mining) 3
1.2 Lịch sử phát triển KPDL 4
1.3 Tại sao dùng khai phá dữ liệu 5
2 Các Công Đoạn Khám Phá Tri Thức Từ Cơ Sở Dữ Liệu 6
2.1 Chọn lọc dữ liệu 7
2.2 Làm sạch dữ liệu 7
2.3 Mã hóa dữ liệu 8
2.4 Khai phá dữ liệu 8
2.5 Trình diễn dữ liệu 8
3 Ứng Dụng Của Khai Phá Dữ Liệu 8
3.1 Ngân hàng 8
3.2 Thương mại điện tử 8
3.3 Công nghệ sinh học và dược phẩm 8
3.4 Nhân sự 9
4 Khái Quát Các Kỹ Thuật Khai Phá Dữ Liệu 9
4.1.Khai thác tập phổ biến và luật kết hợp 9
4.2 Khai thác mẫu tuần tự 9
4.3 Phân lớp dữ liệu 9
4.4 Khai thác cụm 10
5 Những Thách Thức Trong Khai Phá Dữ Liệu 10
CHƯƠNG II TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP 11
1 Bài Toán Khai Thác Tập Phổ Biến 11
1.1 Các khái niệm cơ bản 11
1.2 Phát biểu bài toán và độ phức tạp 13
2 Phát Triển Thuật Giải Không Tăng Cường Để Tìm Tập Phổ Biến 13
2.1 Các khái niệm cơ bản 13
2.2 Phát triển thuật toán không tăng cường để tìm tập phổ biến 15
3 Tìm Tập Phổ Biến Tối Đại 18
3.1 Tìm tập phổ biến tối đại bằng đồ thị liên kết các tập phổ biến 18
3.2 Quan hệ giữa bao đóng và tập phổ biến tối đại 19
3.3 Dùng bao đóng để giảm số lượng ứng viên cần tính độ phổ biến 19
Trang 24 Phát Triển Thuật Giải Tăng Cường Để Tìm Tập Phổ Biến 22
4.1 Các khái niệm cơ bản 22
4.2 Dùng thuật tốn tạo dàn khái niệm để tìm tập phổ biến 25
4.3 Duyệt dàn khái niệm tìm tập phổ biến bị đĩng 28
4.4 Tìm các tập khơng phổ biến từ dàn khái niệm 28
5 Phát Triển Thuật Giải Tìm Luật Kết Hợp 29
5.1 Các khái niệm cơ bản 29
5.2 Phát biểu bài tốn tìm luật kết hợp 29
CHƯƠNG III DÃY PHỔ BIẾN 33
1 Dãy Phổ Biến Trong Một Chuỗi 33
1.1 Các khái niệm cơ bản 33
1.2 Dãy phổ biến trong một chuỗi 33
1.3 Các loại episode 33
1.4 Tiếp cận WINEPI 34
1.5 Tần suất 35
1.6 Luật Episode 35
1.7 Thuật tốn WINEPI 35
2 Dãy Phổ Biến Trong Nhiều Chuỗi 38
2.1 Bài tốn tìm dãy phổ biến trong nhiều chuỗi 38
2.2 Thuật tốn AprioriAll 39
CHƯƠNG IV PHÂN LỚP DỮ LIỆU 43
1 Phân Lớp Quy Nạp Trên Cây Quyết Định 43
2 Phương Pháp Phân Lớp Bayes 47
2.1 Sự phân hoạch và cơng thức Bayes 47
2.2 Bộ phân lớp Nạve Bayes 47
3 Các Phương Pháp Phân Lớp Khác 49
3.1 Phân lớp bằng mạng nơron lan truyền ngược 49
3.2 Phân lớp dựa trên luật kết hợp 50
3.3 Thuật giải di truyền 50
3.4 Tiếp cận tập thơ 50
TÀI LIỆU THAM KHẢO 52
2
Trang 3CHƯƠNG I TỔNG QUAN
Nội dung chương này gồm:
• Các khái niệm cơ bản về khai phá dữ liệu.
• Các công đoạn khám phá tri thức từ cơ sở dữ liệu.
• Ứng dụng và các kỹ thuật của khai phá dữ liệu.
1 Các Khái Niệm Cơ Bản
1.1 Khai phá dữ liệu (Data Mining)
Công nghệ thông tin, Internet, Intranet, kho dữ liệu, cùng với công nghệ lưu trữ tiên tiến hiện nay đã tạo điều kiện cho các doanh nghiệp, các tổ chức thu thập và
sở hữu được khối lượng thông tin khổng lồ Để khai thác hiệu quả nguồn thông tin từ các CSDL lớn đó để hỗ trợ cho tiến trình ra quyết định, bên cạnh các phương pháp khai thác thông tin truyền thống, các nhà nghiên cứu đã phát triển các phương pháp,
kỹ thuật và phần mềm mới để hỗ trợ tiến trình khám phá, phân tích và tổng hợp thông tin
Theo đánh giá của IBM, các phương pháp khai thác thông tin truyền thống chỉ thu được khoảng 80% thông tin từ CSDL, phần còn lại bao gồm các thông tin mang tính khái quát, thông tin có quy luật vẫn đang còn tiềm ẩn bên trong dữ liệu Lượng thông tin này tuy nhỏ nhưng là thông tin cốt lõi và cần thiết cho tiến trình ra quyết định
Khai phá dữ liệu (KPDL) là tiến trình khám phá tri thức tiềm ẩn trong CSDL
Cụ thể hơn, đó là tiến trình trích lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn, chưa biết nhưng hữu ích từ các CSDL lớn
KPDL là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri
thức mang tính khái quát, tính quy luật hỗ trợ tích cực cho các tiến trình ra quyết định
Nguồn dữ liệu phục vụ cho KPDL có thể là các CSDL lớn hay các kho dữ liệu có hoặc không có cấu trúc Nói như vậy không có nghĩa là KPDL không thể thực hiện ở các CSDL nhỏ KPDL chỉ thực sự phát huy tác dụng trên các CSDL lớn, nơi mà khả năng diễn dịch và trực giác của con người cũng như các kỹ thuật truyền thống không thể thực hiện nổi hoặc nếu thực hiện được thì hiệu quả không cao
Có thể chia KPDL thành 2 dạng chính:
Trang 4- KPDL theo hướng kiểm tra: người dùng đề xuất giả thiết, hệ thống kiểm
tra tính đúng đắn của giả thiết (bao gồm: truy vấn, báo cáo, phân tích đa chiều, phân tích thống kê …)
- KPDL theo hướng khám phá: tìm kiếm các tri thức tiềm ẩn trong CSDL
bằng cách tiến hành xem xét tất cả các giả thiết khả dĩ Do không gian tìm kiếm lớn, nên rất nhiều heuristic đã được đề xuất nhằm nâng cao hiệu suất của các thuật giải tìm kiếm
Tri thức được rút ra có thể được dùng để:
- Giải thích dữ liệu: Cung cấp sự hiểu biết sâu sắc và rất hữu ích về hành vi
của các đối tượng, giúp cho các doanh nghiệp hiểu rõ hơn những khách hàng của họ
- Dự báo: dự đoán giá trị của những đối tượng mới.
• Khuynh hướng mua hàng của khách hàng
• Xác định rủi ro tín dụng đối với một khách hàng
• Định hướng tập trung nguồn lực của doanh nghiệp
Ngày nay, khi công cụ thu thập dữ liệu tự động và công nghệ lưu trữ dữ liệu ngày càng hoàn thiện giúp con người tạo lập và quản lý một lượng dữ liệu khổng lồ trong các CSDL, kho dữ liệu (data warehouse) thì nhu cầu nắm bắt dữ liệu, trích rút thông tin trở thành cấp thiết và có ý nghĩa Mặt khác, với nhu cầu ngày càng cao hơn, con người không bằng lòng với những dữ liệu đơn giản thu được từ các kỹ thuật trước đây Từ nhu cầu về những sự kiện rời rạc trong lĩnh vực ứng dụng, nay phát sinh nhu cầu nắm bắt tri thức về các mối quan hệ giữa chúng, xa hơn nữa là phát hiện những quy luật trong lĩnh vực đó KPDL ra đời nhằm đáp ứng các nhu cầu cấp thiết đó
1.2 Lịch sử phát triển KPDL
- Thập niên 1960: xuất hiện CSDL theo mô hình mạng và mô hình phân cấp.
- Thập niên 1970: thiết lập nền tảng lý thuyết cho CSDL quan hệ, các hệ
quản trị CSDL quan hệ
- Thập niên 1980: hoàn thiện lý thuyết về CSDL quan hệ và các hệ quản trị
CSDL quan hệ, xuất hiện các hệ quản trị CSDL cao cấp (hướng đối tượng, suy diễn,
…) và hệ quản trị CSDL hướng ứng dụng trong lĩnh vực không gian, khoa học, công nghiệp, nông nghiệp, địa lý, …
- Thập niên từ 1990 đến 2000: phát triển KPDL và kho dữ liệu, CSDL đa
phương tiện và CSDL web
4
Trang 5KPDL là một công đoạn trong tiến trình khám phá tri thức từ CSDL
(Knowledge Discovery in Database - KDD) KPDL mang tính trực giác, cho phép
thu được những hiểu biết rõ ràng và sâu sắc hơn, vượt xa kho dữ liệu
KPDL giúp phát hiện những xu thế phát triển từ những thông tin quá khứ, cũng như cho phép đề xuất các dự báo mang tính thống kê, gom cụm và phân loại dữ liệu
Vị trí của KPDL được thể hiện qua sơ đồ:
Hình 1 Vị trí của KPDL.
1.3 Tại sao dùng khai phá dữ liệu
KPDL là cần thiết với người dùng vì những lý do sau:
- Ngày càng có nhiều dữ liệu được lưu trữ trong các CSDL, kho dữ liệu và
hình thành một “mỏ vàng dữ liệu” chứa đầy các thông tin chiến lược mà các hệ
quản trị CSDL thông thường không thể phát hiện và quản trị được chúng
- CSDL phát triển rất nhanh cả về kích thước lẫn số lượng Không xét những thông tin mang tính sự kiện được lưu trữ trong CSDL, những thông tin được suy
Tăng khả năng hỗ trợ
quyết định kinh doanh
Ra quyết định Trình bày dữ liệu
Các công cụ trực quan
Data Mining Khảo sát dữ liệu
Phân tích, thống kê, truy vấn và báo cáo
Data Warehouse / Data Marts
dữ liệu
DBA
Trang 6diễn từ nó cũng hết sức lý thú Tuy nhiên, với các quan hệ có số lượng khổng lồ các bản ghi và có quá nhiều trường dữ liệu, việc duyệt hàng triệu bản ghi hay hàng trăm trường tin để tìm ra các mẫu và các quy luật là một thách thức và trở ngại thật sự đối với các nhà phân tích dữ liệu.
- Không phải người dùng nào cũng là nhà thống kê hay nhà phân tích dữ liệu chuyên nghiệp
- Sử dụng cho các trường hợp tìm kiếm nhưng chưa xác lập rõ hoặc chưa mô
tả được các điều kiện tìm kiếm Nếu người dùng biết họ đang tìm kiếm gì thì dùng SQL, nhưng nếu người dùng chỉ có một ý tưởng không rõ ràng, hoặc một cảm nhận nào đó thì họ nên dùng KPDL
KPDL là một công cụ hiệu quả trong các lĩnh vực:
- Sử dụng dữ liệu để xây dựng các mô hình dự báo:
• Khả năng dự báo tiềm ẩn trong dữ liệu
• Gợi ý về các chiều và các nhóm dữ liệu có khả năng chứa các tri thức hữu ích
- Tạo tóm tắt và báo cáo rõ ràng:
• Tự động tìm những phân đoạn trong dữ liệu
• Tìm ra những phân đoạn mà nhà phân tích chưa biết hoặc có hiểu biết nhưng chưa rõ ràng
- Cung cấp cơ chế hỗ trợ ra quyết định:
• Dự báo
• Mô hình hóa
2 Các Công Đoạn Khám Phá Tri Thức Từ Cơ Sở Dữ Liệu
Tiến trình khám phá tri thức từ CSDL bao gồm 3 công đoạn:
- Tường trình, báo cáo kết quả
Tại mỗi công đoạn, tiến trình có thể quay lui qua một hay nhiều giai đoạn Ví
dụ, tại giai đoạn khám phá hay mã hóa dữ liệu, tiến trình vẫn có thể quay trở về giai đoạn xóa bỏ dữ liệu, hay có thể quay trở về giai đoạn làm giàu dữ liệu nếu như có được các dữ liệu mới để sử dụng chúng cho việc làm giàu các tập dữ liệu có sẵn
6
Trang 72.1 Chọn lọc dữ liệu
Đây là giai đoạn chọn lọc, trích rút các dữ liệu cần thiết từ CSDL tác nghiệp vào một CSDL riêng Chúng ta chỉ chọn ra những dữ liệu cần thiết cho các giai đoạn sau Tuy nhiên, công việc thu gom dữ liệu vào một CSDL thường rất khó khăn vì dữ liệu nằm rải rác khắp nơi trong cơ quan, tổ chức Cùng một loại thông tin nhưng được tạo lập theo các dạng thức khác nhau, ví dụ nơi này dùng kiểu chuỗi, nơi kia lại dùng kiểu số để khai báo một thuộc tính nào đó của khách hàng
2.2 Làm sạch dữ liệu
Phần lớn các CSDL đều ít nhiều mang tính không nhất quán Do vậy, khi KPDL trên các CSDL đó thường không đảm bảo tính đúng đắn Ví dụ, trong các công ty bảo hiểm nhân thọ thì ngày sinh của khách hàng cần phải thật chính xác, trong khi đó có từ 30% - 40 % thông tin về tuổi khách hàng trong CSDL ngân hàng
để trống hoặc chứa dữ liệu sai Điều này sẽ làm cho chúng ta không thể khám phá ra
mô hình về quan hệ tuổi tác
Do đó, trước khi bắt đầu KPDL, chúng ta phải tiến hành xóa bỏ dữ liệu không cần thiết, nói chung nên xóa bỏ dữ liệu sai càng nhiều càng tốt Trong thực tế, giai đoạn này được thực hiện nhiều lần, vì chỉ tại giai đoạn KPDL mới phát hiện được tính bất thường trong dữ liệu Có một số loại tiến trình xóa bỏ dữ liệu được thực thi ở mức độ cao trong khi một số loại tiến trình khác chỉ được sử dụng sau khi phát hiện
ra lỗi tại giai đoạn mã hóa hay giai đoạn tìm kiếm
a Chống trùng lặp
Dạng lỗi thứ nhất khá quan trọng trong thao tác xóa bỏ dữ liệu đó là xóa bỏ thông tin trùng của các bản ghi Thao tác này diễn ra khi có những phần thông tin bị trùng do có sai sót trong phần nhập dữ liệu, hoặc thông tin không được cập nhật kịp thời hoặc thông tin được cung cấp bị sai
b Giới hạn vùng giá trị
Dạng lỗi thứ hai thường xảy ra đó là giá trị nằm ngoài miền giá trị cho phép, nghĩa là các thông tin chứa các giá trị không hợp lệ theo một quy tắc nào đó Dạng lỗi này gây tác hại khá lớn vì rất khó phát hiện, nhưng lại có ảnh hưởng lớn đến dạng thức các mẫu cần tìm khi thực hiện KPDL trên các bảng dữ liệu này Từ đó sẽ xuất hiện các mâu thuẫn trong các vùng dữ liệu
Để sửa chữa mâu thuẫn, ta dùng giá trị NULL để thay thế vào những thông tin chưa biết trong các trường của bảng và cứ tiến hành sửa chữa các mâu thuẫn
c Làm giàu dữ liệu
Trang 8Mục đích của giai đoạn này là bổ sung thêm nhiều loại thông tin có liên quan vào cơ sở dữ liệu gốc Để làm được điều này, chúng ta phải có các CSDL khác ở bên ngoài có liên quan đến CSDL gốc ban đầu, ta tiến hành bổ sung những thông tin cần thiết, làm tăng khả năng khám phá tri thức từ CSDL.
2.3 Mã hóa dữ liệu
Mục đích của giai đoạn mã hóa là chuyển đổi kiểu dữ liệu về những dạng thuận tiện để tiến hành các thuật toán khám phá dữ liệu Có nhiều cách mã hóa dữ liệu khác nhau theo từng loại dữ liệu:
- Phân vùng: với dữ liệu là giá trị chuỗi, nằm trong tập các chuỗi cố định
- Biến đổi giá trị năm thành con số nguyên là số năm đã trôi qua so với năm hiện hành
- Chia giá trị số theo một hệ số để tập các giá trị nằm trong vùng nhỏ hơn
- Chuyển đổi yes/no thành 0/1
2.4 Khai phá dữ liệu
KPDL là tiến trình “điều chỉnh đúng” các mô hình dữ liệu Chức năng biến
đổi dữ liệu được đưa vào bước này với mục đích để trình diễn dữ liệu
2.5 Trình diễn dữ liệu
Là quá trình giải thích và hiển thị trực quan các kết quả KPDL để hỗ trợ việc định giá chất lượng dữ liệu, đánh giá mô hình dữ liệu được lựa chọn có phù hợp hay không, và thể hiện mô hình Mỗi bước (trừ bước lưu trữ dữ liệu) cho phép tương tác người dùng và một số bước có thể được thực hiện hoàn toàn thủ công
3 Ứng Dụng Của Khai Phá Dữ Liệu
3.1 Ngân hàng
- Xây dựng mô hình dự báo rủi ro tín dụng
- Tìm kiếm tri thức, quy luật của thị trường chứng khoán và đầu tư bất động sản
3.2 Thương mại điện tử
- Công cụ tìm hiểu, định hướng, thúc đẩy, giao tiếp với khách hàng
- Phân tích khách hàng duyệt web
- Phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp thị phù hợp với loại khách hàng trong một phân khu thị trường nhất định
3.3 Công nghệ sinh học và dược phẩm
Xây dựng công cụ KPDL trực quan cho phép phát hiện sự hiện diện của dược chất, phân tích dữ liệu di truyền
8
Trang 93.4 Nhân sự
- Giúp nhà tuyển dụng chọn ứng viên thích hợp nhất theo nhu cầu của công ty
- Phát hiện giả mạo thẻ trong lĩnh vực viễn thông
- Phát hiện dùng thẻ tín dụng giả trên mạng và là công cụ hữu ích cho dịch vụ quản lý rủi ro cho thương mại điện tử
- Phát hiện xâm nhập mạng trái phép
4 Khái Quát Các Kỹ Thuật Khai Phá Dữ Liệu
4.1.Khai thác tập phổ biến và luật kết hợp
Là tiến trình khám phá các tập giá trị thuộc tính xuất hiện phổ biến trong các đối tượng dữ liệu Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong tập các đối tượng
Một luật kết hợp X → Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất hiện đồng thời tập Y Ví dụ, trong CSDL bán hàng, có một luật kết hợp tiêu biểu như sau:
“Có 67% khách hàng mua bia 333, rượu Nàng Hương thì mua bánh tôm Cầu Tre”.
Luật kết hợp giúp các nhà hoạch định hiểu rõ xu thế bán hàng, tâm lý khách hàng, từ đó đưa ra các chiến lược bố trí mặt hàng, kinh doanh, tiếp thị, tồn kho, …
4.2 Khai thác mẫu tuần tự
Là tiến trình khám phá các mẫu tuần tự phổ biến phản ánh mối quan hệ giữa các biến cố trong các CSDL hướng thời gian Một luật mô tả tuần tự có dạng tiêu biểu X → Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Một luật thể hiện mẫu tuần tự tiêu biểu:
“Có 80% khách hàng mua Áo thun Việt Tiến, mua bóng Động Lực thì sau
3 ngày mua quần Việt Tiến”.
Nhờ mẫu tuần tự, có thể khám phá các xu thế phát triển hành vi của đối tượng
4.3 Phân lớp dữ liệu
Là tiến trình khám phá các luật phân loại hay đặc trưng cho các tập dữ liệu đã được xếp lớp Tập dữ liệu học bao gồm tập đối tượng đã được xác định lớp sẽ được dùng để tạo mô hình phân lớp dựa trên đặc trưng của đối tượng trong tập dữ liệu học Các luật phân lớp được sử dụng để xây dựng các bộ phân lớp dữ liệu Phân lớp dữ liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hướng, quy luật phát
Trang 10triển Áp dụng vào tiến trình phân lớp dữ liệu khách hàng trong CSDL có thể xây dựng các luật phân lớp khách hàng Một luật phân lớp có dạng tiêu biểu như sau:
“Nếu khách hàng ở khu vực 1 và có doanh số năm trước > 200 triệu và có cửa hàng ở khu thị tứ thì thuộc loại khách hàng có thể giao hàng trước trả tiền sau”.
4.4 Khai thác cụm
Là tiến trình nhận diện các cụm tiềm ẩn trong tập các đối tượng chưa được xếp lớp Tiến trình khai thác cụm dựa trên mức độ tương tự giữa các đối tượng Các đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm là cực đại và mức độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là cực tiểu Các cụm được đặc trưng bằng các tính chất chung của tất cả các đối tượng gom cụm Do vậy, khảo sát các cụm sẽ giúp khái quát tổng kết nhanh chóng nội dung của khối dữ liệu lớn
5 Những Thách Thức Trong Khai Phá Dữ Liệu
KPDL phải làm việc với khối lượng dữ liệu lớn và do từ nhiều nguồn khác nhau (CSDL, Internet, các loại thiết bị thu nhận tín hiệu, …) nên vấn đề tốc độ xử lý
là vấn đề cần quan tâm trước nhất Có hai phương hướng để giải quyết vấn đề này là nâng cao năng lực của phần cứng và cải tiến phần mềm, trong đó việc nghiên cứu đề xuất các thuật toán hiệu quả có khả năng làm việc trên khối lượng dữ liệu lớn, và có
độ phức tạp tính toán thấp là một hướng nghiên cứu đầy tiềm năng Từ nhu cầu thực
tế trên, gần đây đã xuất hiện nhiều ngành khoa học công nghệ hỗ trợ KPDL như tính toán song song, máy tính tương tự, công nghệ nano, …
10
Trang 11CHƯƠNG II TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP
Nội dung chương này gồm:
• Các khái niệm cơ bản về luật kết hợp.
• Thuật toán Apriori, tìm tập phổ biến tối đại.
• Tìm luật kết hợp.
1 Bài Toán Khai Thác Tập Phổ Biến
1.1 Các khái niệm cơ bản
Trang 12* Định nghĩa 3: Kết nối Galois
Cho ngữ cảnh KPDL (O,I,R), xét hai hàm ρ và λ được định nghĩa như sau:
ρ : P(I) → P(O)
λ : P(O) → P(I)Cho S ⊆ I, ρ(S) = {o ∈ O | ∀i ∈ S , (o,i) ∈ R}
Cho X ⊆ O, λ(X) = {i ∈ I | ∀o ∈ X , (o,i) ∈ R}
Trong đó, P(X) là tập các tập con của X Cặp hàm (ρ,λ) được định nghĩa như vậy được gọi là kết nối Galois
Giá trị ρ(S) biểu diễn tập các hóa đơn có chung tất cả các mặt hàng trong S Giá trị λ(X) biểu diễn tập các mặt hàng xuất hiện trong tất cả các hóa đơn của X
Ví dụ: Với ngữ cảnh KPDL như trong bảng 2,
Cho ngữ cảnh KPDL (O,I,R) và S ⊂ I, độ phổ biến của S được định nghĩa là tỉ
số giữa số các hóa đơn có chứa S và số lượng hóa đơn trong O Độ phổ biến của S
ký hiệu là SP(S) và được tính như sau:
SP(S) = |ρ(S)| / |O|
với |.| là lực lượng của tập hợp
Cho S ⊂ I và minsupp ∈ (0,1] là ngưỡng phổ biến tối thiểu S là một tập phổ biến theo ngưỡng minsupp nếu và chỉ nếu SP(S) ≥ minsupp
12
Trang 13Ký hiệu FS(O,I,R,minsupp) là tập hợp các tập phổ biến theo ngưỡng minsupp hay FS(O,I,R,minsupp) = {S ∈ P(I) | SP(S) ≥ minsupp}
Ví dụ: Với (O,I,R) ở bảng 2 và ngưỡng minsupp = 0.4, các tập mặt hàng sau đây là
các tập phổ biến theo minsupp = 0.4
Cho (O,I,R), xét P(I) là tập các tập hợp con của tập mặt hàng I và quan hệ thứ
tự “⊆”, thì (P(I), ⊆) là một dàn Do I là tập mặt hàng nên dàn (P(I), ⊆) được gọi là dàn các tập mặt hàng Dàn (P(I), ⊆) xác định không gian tìm kiếm lời giải của bài toán
* Nguyên lý Apriori:
1.2 Phát biểu bài toán và độ phức tạp
Cho ngữ cảnh KPDL (O,I,R) và ngưỡng phổ biến tối thiểu minsupp ∈ (0,1], tìm tất cả các tập phổ biến của (O,I,R) theo ngưỡng minsupp Bài toán tìm các tập
phổ biến có không gian lời giải rất lớn O(m2n) với m = |O| và n = |I| Với CSDL có hàng trăm ngàn hóa đơn và tập mặt hàng có hàng chục ngàn mặt hàng sẽ khiến số lượng tập ứng viên cần xét là rất lớn và thời gian truy cập đĩa tăng lên đáng kể lúc tính độ phổ biến của tập ứng viên
2 Phát Triển Thuật Giải Không Tăng Cường Để Tìm Tập Phổ Biến
2.1 Các khái niệm cơ bản
* Định nghĩa 6: Vector biểu diễn tập mặt hàng
Cho ma trận M là ma trận biểu diễn ngữ cảnh KPDL (O,I,R) Gọi m = |O| và cho tập mặt hàng S ⊂ I, vector biểu diễn tập mặt hàng S ký hiệu là v(S) là vector nhị phân có m thành phần, thành phần thứ i của vector v(S) có trị 1 nếu hóa đơn oi có chứa tất cả các mặt hàng trong S hay giá trị của các phần tử nằm trên dòng i và trên các cột ứng với các mặt hàng trong S đều có giá trị 1, ngược lại sẽ có trị 0
Trang 14Trong các phần sau, vector biểu diễn tập mặt hàng sẽ được gọi tắt là vector biểu diễn.
Ví dụ: Với ngữ cảnh KPDL ở bảng 2 và S = {i2 , i3} thì vector biểu diễn v(S) = (1 ,
1 , 1 , 1 , 0)
* Định nghĩa 7: Tích vector biểu diễn
Cho S ⊂ I và T ⊂ I, gọi v(S) = (s1, …, sm) và v(T) = (t1, …, tm) lần lượt là các vector biểu diễn của S và T Tích vector biểu diễn của vector v(S) và v(T) ký hiệu là
⊗ là vector biểu diễn v(Z) = (z1, …, zm) với zk = min(sk, tk), k = 1, …, m
Từ vector v(Z) có thể suy ra tất cả các đối tượng có chứa S ∪ T
Tính kết hợp của tích vector biểu diễn:
v(X) ⊗ v(Y) ⊗ v(Z) = v(X) ⊗ [v(Y) ⊗ v(Z)] = [v(X) ⊗ v(Y)] ⊗ v(Z)
* Định nghĩa 8: Độ phổ biến của vector biểu diễn
Cho S ⊆ I, độ phổ biến của vector biểu diễn v(S) được ký hiệu là SPV(v(S))
là tỉ số giữa số thành phần khác 0 trong v(S) và số thành phần của v(S) hay số dòng của ma trận biểu diễn ngữ cảnh KPDL Có thể kiểm tra SPV(v(S)) = SP(S)
- Mệnh đề 3: Cho S ⊆ I và S1, …, Sk là các tập con của S sao cho:
Thuật toán 1: Tính vector biểu diễn:
Có thể tính vector biểu diễn v(S) của S ∈ P(I) theo các cách sau:
14
i k
Trang 151 Tạo ma trận nhị phân biểu diễn ngữ cảnh KPDL trong bộ nhớ máy tính dưới dạng một mảng hai chiều, ta có:
v(S) = ⊗ i ∈ S v({i})với v({i}) là cột ứng với mặt hàng i trong ma trận biểu diễn ngữ cảnh
Ma trận biểu diễn ngữ cảnh KPDL được đọc từ đĩa một lần duy nhất và lưu vào bộ nhớ trong của máy tính Số lần truy cập đĩa bằng tổng số bản ghi trong CSDL Do vậy, chỉ cần truy cập CSDL lúc tạo ma trận biểu diễn ngữ cảnh KPDL, sau đó chỉ còn truy xuất mảng trong bộ nhớ và tính tích các cột của ma trận
2 Nếu |S| = k và trong tiến trình xử lý có lưu lại các vector biểu diễn v(S1) và v(S2) sao cho S = S1 ∪ S2, |S1| = k – 1, |S2| = k – 1 thì v(S) = v(S1) ⊗ v(S2) Dựa vào kết quả của mệnh đề 3 để tính v(S) theo v(S1) và v(S2)
2.2 Phát triển thuật toán không tăng cường để tìm tập phổ biến
Thuật toán được xây dựng dựa trên kết quả của mệnh đề 1 Đầu tiên, thuật toán sẽ tìm các tập phổ biến có một phần tử Sau đó, các ứng viên của các tập phổ biến có hai phần tử sẽ được tạo lập bằng phép hội các tập phổ biến có một phần tử Một cách tổng quát, các tập ứng viên của tập phổ biến có k phần tử sẽ được tạo từ các tập phổ biến có k - 1 phần tử
Ký hiệu: Fk = {S ∈ P(I) | SP(S) ≥ minsupp và |S| = k} và
VSk = {v(S) | S ∈ Fk}Cấu trúc dữ liệu cây nhị phân được sử dụng để lưu các tập phổ biến, tập S được sắp theo thứ tự nhất định sẽ là các nhãn trên con đường từ nút gốc đến nút ứng với mặt hàng cuối cùng trong S, nút này cũng lưu vector biểu diễn v(S)
Thuật toán 2: Tìm tập phổ biến:
- Vào: (O,I,R) và ngưỡng minsupp
- Vào: ngữ cảnh KPDL (O,I,R), ngưỡng phổ biến tối thiểu minsupp
Trang 16Thuật toán 4: Tạo Fk từ F k-1
Dựa trên kết quả của mệnh đề 1 và 3
- Vào: Fk-1 được sắp xếp theo một thứ tự nào đó và VSk-1
Trang 17SP({i4}) = SPV(v({i4})) = 3/5 = 0.6 (tập phổ biến)
- F2 = { {i1, i2} , {i1, i3} , {i2, i3} , {i2, i4} , {i3, i4} } vì:
• {i1, i2} , v({i1, i2}) = v({i1}) ⊗ v({i2}) = (1, 0, 0, 1, 0)
SP({i1, i2}) = SPV(v({i1, i2})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i3} , v({i1, i3}) = v({i1}) ⊗ v({i3}) = (1, 0, 0, 1, 0)
SP({i1, i3}) = SPV(v({i1, i3})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i4} , v({i1, i4}) = v({i1}) ⊗ v({i4}) = (0, 0, 0, 0, 0)
SP({i1, i4}) = SPV(v({i1, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
• {i2, i3} , v({i2, i3}) = v({i2}) ⊗ v({i3}) = (1, 1, 1, 1, 0)
SP({i2, i3}) = SPV(v({i2, i3})) = 4/5 = 0.8 (tập phổ biến)
• {i2, i4} , v({i2, i4}) = v({i12}) ⊗ v({i4}) = (0, 1, 1, 0, 0)
SP({i2, i4}) = SPV(v({i2, i4})) = 2/5 = 0.4 (tập phổ biến)
• {i3, i4} , v({i3, i4}) = v({i3}) ⊗ v({i4}) = (0, 1, 1, 0, 1)
SP({i3, i4}) = SPV(v({i3, i4})) = 3/5 = 0.6 (tập phổ biến)
- F3 = { {i1, i2, i3} , {i2, i3, i4} } vì:
• {i1, i2, i3} , v({i1, i2, i3}) = v({i1, i2}) ⊗ v({i1, i3}) = (1, 0, 0, 1, 0)
SP({i1, i2, i3}) = SPV(v({i1, i2, i3})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i2, i4} , v({i1, i2, i4}) = v({i1, i2}) ⊗ v({i2, i4}) = (0, 0, 0, 0, 0)
SP({i1, i2, i4}) = SPV(v({i1, i2, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
• {i1, i3, i4} , v({i1, i3, i4}) = v({i1, i3}) ⊗ v({i3, i4}) = (0, 0, 0, 0, 0)
SP({i1, i3, i4}) = SPV(v({i1, i3, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
• {i2, i3, i4} , v({i2, i3, i4}) = v({i2, i3}) ⊗ v({i3, i4}) = (0, 1, 1, 0, 0)
SP({i2, i3, i4}) = SPV(v({i2, i3, i4})) = 2/5 = 0.4 (tập phổ biến)
- F4 = { {i1, i2, i3, i4} } vì:
• {i1, i2, i3, i4} , v({i1, i2, i3, i4}) = v({i1, i2, i3}) ⊗ v({i2, i3, i4}) = (0, 0, 0,
0, 0)
Trang 18SP({i1, i2, i3, i4}) = SPV(v({i1, i2, i3, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
Vậy: FS(O,I,R,minsupp = 0.4) = F1 ∪ F2 ∪ F3 = { {i1} , {i2} , {i3} , {i4} , {i1, i2} , {i1, i3} , {i2, i3} , {i2, i4} , {i3, i4} , {i1, i2, i3} , {i2, i3, i4} }
3 Tìm Tập Phổ Biến Tối Đại
3.1 Tìm tập phổ biến tối đại bằng đồ thị liên kết các tập phổ biến
* Định nghĩa 9: Tập phổ biến tối đại
Cho M ∈ FS(O,I,R,minsupp), M được gọi là tập phổ biến tối đại nếu không tồn tại S ∈ FS(O,I,R,minsupp), M ≠ S, M ⊂ S
Ký hiệu MS(O,I,R,minsupp) là tập hợp các tập phổ biến tối đại của ngữ cảnh KPDL (O,I,R) theo ngưỡng minsupp
Ví dụ: Với ngữ cảnh KPDL ở bảng dữ liệu 2 và ngưỡng phổ biến tối thiểu minsupp
= 0.4 sẽ có các tập phổ biến tối đại {i1, i2, i3} , {i2, i3, i4}
* Định nghĩa 10: Đồ thị liên kết các tập phổ biến là đồ thị có hướng G(V,E), với V
là tập các tập phổ biến và E là tập các cung Cung (X,Y) ∈ E nếu X, Y là các tập phổ biến và X ⊂ Y, |Y| = |X| + 1
Thuật toán 5: Tạo đồ thị liên kết
Đồ thị liên kết các tập phổ biến được tạo trong lúc tính v(S) = v(X) ⊗ v(Y) của thuật toán 4, theo đó sẽ tạo các cung có hướng mà gốc là X và ngọn là S và cung
có hướng có gốc là Y, ngọn là S
Thuật toán 6: Tìm tập phổ biến tối đại từ đồ thị liên kết
Thực hiện thao tác duyệt đồ thị liên kết và tìm các đỉnh không có cung ra sẽ là các tập phổ biến tối đại
Nhận xét: Nếu tìm được các tập phổ biến tối đại theo ngưỡng phổ biến tối thiểu
minsupp, thì theo kết quả của mệnh đề 1 có thể thu được tất cả các tập phổ biến theo ngưỡng minsupp vì các tập con của các tập phổ biến tối đại phải là tập phổ biến theo ngưỡng minsupp
18
{i1, i2} {i1, i3} {i2, i3} {i2, i4} {i3, i4}
Hình 2 Đồ thị liên kết các tập phổ biến.
Trang 193.2 Quan hệ giữa bao đóng và tập phổ biến tối đại
* Định nghĩa 11: Hàm đóng
Cho tập hợp O, hàm c: P(O) → P(O) là một hàm đóng trên P(O) nếu với mọi
X, Y ∈ P(O), hàm c thỏa các tính chất sau:
- Mệnh đề 4: Độ phổ biến của tập mặt hàng S bằng độ phổ biến của bao đóng của nó
qua hàm đóng h = λoρ, nghĩa là: SP(S) = SP(h(S))
- Tính chất: Tập hợp các tập phổ biến tối đại chính là tập hợp các tập phổ biến tối
đại bị đóng
3.3 Dùng bao đóng để giảm số lượng ứng viên cần tính độ phổ biến
Kết quả của mệnh đề 5 được sử dụng để làm giảm tập ứng viên Ck cho bước tìm tập phổ biến có chiều dài bằng k và do vậy giảm thời gian quét đĩa để tính độ
phổ biến của các ứng viên Ký hiệu CL(O,I,R, minsupp) là tập các bao đóng của
ngữ cảnh KPDL (O,I,R)
Thuật toán 7: Tính các tập phổ biến dựa trên bao đóng
- Vào: Ngữ cảnh KPDL (O,I,R) và ngưỡng minsupp ∈ (0,1]
- Ra: FS(O,I,R,minsupp)
Các bước thuật toán:
Trang 20Tính SP(S)
If (SP(S) ≥ minsupp) then
Tappb = TrueEndif
EndforEndfor
Endfor
Thuật toán 8: Tính bao đóng h(S) với S ∈ P(I)
- Vào: Ngữ cảnh KPDL (O,I,R) và S ∈ P(I)
Trang 21If S ⊂ λ({o}) then
h(S) = h(S) ∩ λ({o})endif
Ghi bao đóng của {i2} là {i2, i3} vào CL(O,I,R,minsupp) (mệnh đề 4)
Ghi {i2, i3} là tập phổ biến bị đóng
• {i3} , SP = 1.0
Ghi {i3} là tập phổ biến bị đóng
• {i4} , SP = 0.6
Ghi bao đóng của {i4} là {i3, i4} vào CL(O,I,R,minsupp) (mệnh đề 4)
Ghi {i3, i4} là tập phổ biến bị đóng
- Lần lặp k = 2
• Xét {i1, i2}, do đây là tập con của bao đóng {i1, i2, i3} nên là tập phổ biến (mệnh đề 5)
Ghi {i1, i2, i3} là tập phổ biến bị đóng
• Xét {i1, i3} là tập con của bao đóng {i1, i2, i3} nên là tập phổ biến (mệnh đề 5)
{i1, i3} , SP = 0.4
• Xét {i2, i3} , do đã là tập phổ biến lúc tính bao đóng của {i1} nên không xét
• {i2, i4}, ghi bao đóng của {i2, i4} là {i2, i3, i4} vào CL(O,I,R,minsupp) (mệnh đề 4)
Ghi {i2, i3, i4} là tập phổ biến
Trang 22- Lần lặp k = 3
• {i1, i2, i3} đã là tập phổ biến trong bước lặp k = 2, nên không xét
Vậy:
- Tập phổ biến:
{i1, i2, i3} , SP = 0.4
{i2, i3, i4} , SP = 0.4
- Tập bị đóng:
{i3} , SP = 1.0
{i3, i4} , SP = 0.6
{i2, i3} , SP = 0.8
{i2, i3, i4} , SP = 0.4
{i1, i2, i3} , SP = 0.4
- Tập tối đại bị đóng:
{i1, i2, i3} , SP = 0.4
{i2, i3, i4} , SP = 0.4
Có tổng cộng 2 tập tối đại bị đóng và cũng chính là tập phổ biến tối đại
Trong ví dụ trên, có 3 lần sử dụng kết quả của mệnh đề 5 để giảm số lượng tập phổ biến ứng viên cần tính độ phổ biến (giảm số lần truy cập CSDL), đó là các tập phổ biến {i1, i2} , {i1, i3} , {i2, i3}
4 Phát Triển Thuật Giải Tăng Cường Để Tìm Tập Phổ Biến
Phần này phát triển thuật toán tăng cường để tìm tập phổ biến từ CSDL lớn và
có nhiều biến động dựa trên dàn khái niệm Bài toán khám phá các khái niệm hình thức và dàn Galois được Wille (1982) đề xuất và có rất nhiều ứng dụng trong biểu diễn và tìm kiếm tri thức
R.Godin (1995) đã đề xuất một thuật toán tăng cường để tìm các khái niệm hình thức và xây dựng biểu đồ Hasse cho dàn khái niệm Phần này khảo sát quan hệ giữa dàn khái niệm và tập phổ biến nhằm ứng dụng thuật toán tạo dàn khái niệm của Godin để tìm các tập phổ biến trong các CSDL có nhiều biến động do thao tác cập nhật và giảm thời gian truy cập CSDL
4.1 Các khái niệm cơ bản
* Định nghĩa 13: Ngữ cảnh khái niệm
Cho O là một tập hữu hạn khác rỗng các đối tượng và I là tập hữu hạn khác rỗng các thuộc tính nhị phân Gọi R là một quan hệ hai ngôi trên O và I, R ⊆ OxI Bộ
ba (O,I,R) là một ngữ cảnh của khái niệm Bảng 3 là một ví dụ về ngữ cảnh khái niệm
22
Trang 23* Định nghĩa 14: Khái niệm hình thức
Cho ngữ cảnh khái niệm (O,I,R) và (ρ,λ) là các kết nối Galois được định nghĩa tại định nghĩa 3, một cặp (X,S) với X ∈ P(O) và S ∈ P(I) sao cho X = ρ(S) và
S = λ(X) là một khái niệm hình thức của (O,I,R), trong đó X được gọi là extent và S được gọi là intent của khái niệm (X,S)
Ký hiệu B(O,I,R) là tập các khái niệm hình thức được tạo từ (O,I,R)
Ví dụ: Các khái niệm hình thức trong ngữ cảnh khái niệm ở bảng 3 là:
C1 = ({o1, o2, o3, o4}, {i1})
C2 = ({o1, o2, o3}, {i1, i2})
C3 = ({o2, o3, o4}, {i1, i3})
C4 = ({o2, o3}, {i1, i2, i3})
C5 = ({o4}, {i1, i3, i4})
C6 = (∅, {i1, i2, i3, i4})
Tính chất: Các tập X và S trong khái niệm hình thức (X,S) là các tập bị đóng.
Thật vậy, theo định nghĩa X = ρ(S) và S = λ(X) Với h = λ o ρ và h’ = ρ o λ
Do vậy, X = ρ(S) = ρ(λ(X)) = ρ o λ(X) = h’(X) và S = λ(X) = λ(ρ(S)) = λ o ρ(S) = h(S)
* Định nghĩa 15: Dàn khái niệm
Cho ngữ cảnh (O,I,R) , (ρ,λ) là các kết nối Galois được định nghĩa ở trên, tập các khái niệm hình thức B(O,I,R) Trên B(O,I,R) ta định nghĩa quan hệ thứ tự “≤” sao cho C1 = (X1,S1) và C2 = (X2,S2) thì C1 ≤ C2 ⇔ X1 ⊆ X2
Các định nghĩa trên dẫn đến định lý cơ bản của Wille (1982) nhằm khẳng định (B(O,I,R), ≤) là một dàn đầy đủ
* Định lý 1: (Wille, 1982) Cho ngữ cảnh khái niệm (O,I,R), gọi B(O,I,R) là tập hợp
tất cả các khái niệm hình thức của (O,I,R) và “≤” là quan hệ thứ tự trên các khái niệm thì (B(O,I,R), ≤) là một dàn đầy đủ, trong đó phép nối rời (join) và phép nối liền (meet) được định nghĩa như sau:
Trang 24với J là tập các chỉ số của tất cả các khái niệm hình thức của (O,I,R).
Nếu C1 ≤ C2, ta gọi khái niệm C2 là tổ tiên của C1 và khái niệm C1 là hậu duệ của C2 Nếu C2 là trội trực tiếp của C1, ta gọi C2 là cha của C1 và C1 là con của C2 Có thể dùng biểu đồ Hasse để biểu diễn dàn khái niệm Nếu C1 là con của C2 thì
sẽ có cạnh nối C1 với C2
Ví dụ: Biểu đồ Hasse của dàn khái niệm ứng với ngữ cảnh trong bảng 3.
* Định nghĩa 16: Các khái niệm phổ biến và khái niệm phổ biến tối đại theo intent.
Cho ngữ cảnh (O,I,R) và tập các khái niệm hình thức B(O,I,R) Khái niệm C
= (X,S) là khái niệm phổ biến theo ngưỡng phổ biến tối thiểu minsupp ∈ (0,1] nếu
và chỉ nếu |X|/|O| ≥ minsupp
Ký hiệu FC(O,I,R,minsupp) là tập các khái niệm phổ biến theo ngưỡng minsupp
({o1, o2, o3}, {i1, i2}) ({o2, o3, o4}, {i1, i3})
({o2, o3}, {i1, i2, i3}) ({o4}, {i1, i3, i4})
(∅, {i1, i2, i3, i4})
Trang 25Khái niệm Cm = (Xm,Sm) ∈ FC(O,I,R,minsupp) là khái niệm phổ biến tối đại theo intent nếu không tồn tại khái niệm Cn = (Xn,Sn) ∈ FC(O,I,R,minsupp) sao cho Cm ≠ Cn và Sm ⊂ Sn Nếu lấy ngưỡng minsupp = 0.5 thì C1, C2, C3, C4 là các khái niệm phổ biến Trong đó, C4 là khái niệm phổ biến tối đại theo intent.
4.2 Dùng thuật toán tạo dàn khái niệm để tìm tập phổ biến
Đây là ý tưởng của Godin, để xây dựng thuật toán tăng cường tạo dàn khái niệm từ ngữ cảnh KPDL, gồm các mệnh đề sau:
(X,S) trong dàn L có S ⊆ λ({o*}) đều bị cập nhật thành (X ∪ {o*} , S)
(E,S) ∈ L thì sẽ tạo nút mới (X’,S’) được tính như trên Phần tử (X,S) được gọi là phần tử sinh của khái niệm mới Phần tử sinh sẽ là con của nút mới
- Mệnh đề 8: Cha của nút mới (X,S) là một nút mới hay một nút bị sửa đổi (X’,S’)
sao cho (X’,S’) = sup {(X’,S’) ∈ L | S’ ⊆ S}
Dựa vào các kết quả trên R.Godin (1995) đã xây dựng thuật toán tăng cường tạo dàn khái niệm từ ngữ cảnh hình thức Để tìm tập phổ biến, thuật toán này đã được cải tiến trong đó khái niệm (X,S) trong thuật toán của R.Godin được biến đổi thành (|ρ(S)|,S) với |ρ(S)| là số lượng hóa đơn có chứa tập mặt hàng S
Thuật toán 9: Tạo dàn khái niệm để tìm tập phổ biến.
- Vào: Ngữ cảnh KPDL (O,I,R)
- Ra: Dàn khái niệm
Thủ tục InsertOrder là một thuật toán tăng cường để chèn một đối tượng o
vào dàn khái niệm Hàm λ({o}) sẽ cho danh sách các mặt hàng chứa trong đối tượng
(hóa đơn o) Maxsize là kích thước lớn nhất của các tập mặt hàng, DanL là dàn các khái niệm hình thức Khái niệm C có kiểu khái niệm bao gồm các thành phần
C.intent(S) là intent của khái niệm C; C.Support là độ phổ biến của khái niệm C(|
ρ(S)|); C.CardIntent là số phần tử của tập hợp C.intent Các biến DanL,
TapChuaCo, TapDaCo, TapMuck là các biến có kiểu tập hợp mà các thành phần có
kiểu khái niệm
Procedure InsertOrder (λ({o}) ; Maxsize ; DanL)
(1) TapChuaCo = ∅ ;
(2) TapDaCo = ∅ ;
Trang 26(3) For (k=1 ; k ≤ Maxsize ; k++)
(4) -Đọc DanL và tạo TapMuck chứa khái niệm C có C.CardIntent là k.(5) For each C ∈ TapMuck do
(6) If (C.Intent ⊆ λ({o})) then
(7) Tăng C.Support thêm 1 ; // Mệnh đề 6
(15) If PhanGiao ∉ TapDaCo then // Mệnh đề 7