- Đề xuất thuật toán mới IdVM với mong muốn sẽ cải thiện được tính hiệu quả của thuật toán khai thác k thứ hạng đầu tập các thành phần có thể xóa được Top - Rank - K.. Khai thác dữ liệu
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Cán bộ hướng dẫn khoa học : TS TÔ HOÀI VIỆT
Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 17 tháng 10 năm 2015
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)
1 PGS TSKH Nguyễn Xuân Huy Chủ tịch
3 TS Nguyễn Thị Thúy Loan Phản biện 2
Trang 4NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: CHÂU TRẦN TRÚC LY Giới tính: Nữ
Ngày, tháng, năm sinh: 23/10/1987 Nơi sinh: An Giang
Chuyên ngành: Công Nghệ Thông Tin MSHV:1341860044
I- Tên đề tài:
Khai Thác Top - Rank - K Tập Xóa Được
II- Nhiệm vụ và nội dung:
- Tổng hợp và phân tích những kết quả nghiên cứu hiện nay trong khai thác top –
rank – k tập xóa được
- Đề xuất thuật toán mới IdVM với mong muốn sẽ cải thiện được tính hiệu quả
của thuật toán khai thác k thứ hạng đầu tập các thành phần có thể xóa được (Top
- Rank - K)
III- Ngày giao nhiệm vụ: 03/04/2015
IV- Ngày hoàn thành nhiệm vụ: 17/09/2015
V- Cán bộ hướng dẫn:
TS Tô Hoài Việt
CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH
TS TÔ HOÀI VIỆT
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này
đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện Luận văn
Châu Trần Trúc Ly
Trang 6LỜI CÁM ƠN
Trước tiên tôi xin chần thành cảm ơn Thầy Tô Hoài Việt đã tận tình chỉ dạy và hướng dẫn tôi trong suốt quá trình nghiên cứu và thực hiện luận văn này
Tôi cũng xin cảm ơn PSG TS Lê Hoài Bắc, TS Võ Đình Bảy, TS Cao Tùng Anh
và quý Thầy Cô Khoa Công Nghệ Thông Tin - Trường Đại Học Công Nghệ Thành phố
Hồ Chí Minh đã tận tình giảng dạy và truyền đạt cho tôi những kiến thức bổ ích qua các môn học trong chương trình đào tạo
Cuối cùng tôi xin chân thành cảm ơn gia đình, bạn bè đã giúp đỡ tôi trong suốt quá trình học tập
Tôi xin chân thành cảm ơn
TP Hồ Chí Minh, 2015
CHÂU TRẦN TRÚC LY
Trang 7
TÓM TẮT
Khai thác tập xóa được, được giới thiệu lần đầu vào năm 2009, nó là sự thay đổi thú vị của khai tác tập dữ liệu thường xuyên Nó cho phép các nhà quản lý xem xét cẩn thận các kế hoạch sản xuất của mình để đảm bảo sự ổn định của nhà máy trong quá trình sản xuất kinh doanh Bên cạnh vấn đề khai thác tập xóa được, vấn đề khai thác Top – Rank – K tập xóa được cũng được xem là vấn đề thú vị và là vấn đề khá thực tế Trong bài báo này, chúng tôi đề xuất một thuật toán mới gọi là IdVM cho khai thác Top – Rank – K tập xóa được cùng với các định lý của nó Ưu điểm chính của thuật toán này là tính được lợi nhuận và tìm các tập ứng cử viên một cách nhanh nhất và hiệu quả nhất Để đánh giá thuật toán IdVM tôi đã thí nghiệm trên bộ dữ liệu chuẩn trong thuật toán dVM Hiệu quả của phương pháp đề xuất đã được chứng minh bằng cách so sánh với thời gian khai thác và sử dụng bộ nhớ trên bộ dữ liệu chuẩn đó
Trang 9Top-MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
TÓM TẮT iii
ABSTRACT iv
KÝ HIỆU VÀ TỪ VIẾT TẮT ix
DANH MỤC CÁC BẢNG BIỂU xii
DANH MỤC HÌNH ẢNH xv
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Khai thác dữ liệu 1
1.2 Khai thác tập xóa được 1
1.3 Khai thác Top – Rank – K tập xóa được 2
1.4 Giới thiệu đề tài 2
1.4.1 Mục tiêu và nội dung nghiên cứu 4
1.4.2 Cấu trúc luận văn 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 6
2.1 Bài toán khai thác tập xóa được 6
2.1.1 Phát biểu và mở đầu vấn đề 6
2.1.2 Các định nghĩa 7
2.2 Một số thuật toán khai thác tập xóa được 9
2.2.1 Thuật toán META: 9
2.2.2 Thuật toán VME: 10
2.2.3 Thuật toán MERIT/MERIT+: 11
Trang 102.2.4 Thuật toán dMERIT+ 13
2.2.5 Thuật toán MEI 13
2.3 Thuật toán Top – Rank – K 14
2.3.1 Các định nghĩa 14
2.3.2 Phát biểu bài toán và cơ sở lý thuyết 16
2.4 Một số thuật toán Top – Rank – k tập xóa được 16
2.4.1 Thuật toán MIKE 16
2.4.1.1 Định nghĩa và bổ đề 17
2.4.1.2 Phương pháp 19
2.4.1.3 Minh họa 20
2.4.1.4 Nhận xét 25
2.4.2 Thuật toán I-MIKE 25
2.4.2.1 Phương pháp 25
2.4.2.2 Minh họa 27
2.4.2.3 Nhận xét: 29
2.4.3 Thuật toán VM 30
2.4.3.1 Định nghĩa và tính chất của PID_List 30
2.4.3.2 Phương pháp: 35
2.4.3.3 Minh họa 41
2.4.3.4 Nhận xét 45
2.4.4 Thuật toán dVM 46
2.4.4.1 PID_List 46
2.4.4.2 Khai thác Top – Rank – K tập xóa được sử dụng dPID_List: 47
Trang 112.4.4.3 Thuật toán dVM 49
2.4.4.4 Minh họa 52
2.4.4.5 Nhận xét 57
CHƯƠNG 3: THUẬT TOÁN IdVM CHO KHAI THÁC TOP – RANK – K TẬP XÓA ĐƯỢC 58
3.1 Giới thiệu 58
3.2 Các khái niệm: 58
3.2.1 Khai thác tập xóa được Top – Rank – K 58
3.2.1.1 PID_List cho thuật toán IdVM 60
3.2.1.2 Thuật toán IdVM áp dụng cấu trúc dPID_List: 61
3.2.2 Phương pháp sinh tập ứng viên 61
3.3 Thuật toán IdVM 62
3.3.1 Ý tưởng 62
3.3.2 Phương pháp 63
3.3.3 Mã giả 64
3.3.4 Minh họa 67
3.3.5 Nhận xét 72
3.4 Thử nghiệm và đánh giá 72
3.5 Thời gian thực hiện 73
3.6 Bộ nhớ sử dụng 75
3.7 Tổng kết: 76
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78
4.1 Kết luận 78
Trang 124.2 Hướng phát triển 78 TÀI LIỆU THAM KHẢO 79
Trang 13KÝ HIỆU VÀ TỪ VIẾT TẮT
Ký hiệu và
DBe Example database Cơ sở dữ liệu thí dụ dMERIT+ dMERIT+ algorithm Thuật toán dMERIT+
dNC'_Set The difference of two NC'_Sets Hiệu của hai NC'_Set
dPidset The difference of two Pidsets Hiệu của hai Pidset
E k The set of erasable k-itemsets Tập hợp các
I The set of items
Tập hợp toàn bộ các thành phần trong cơ sở
dữ liệu
i k The kth item in I Thành phần thứ k trong I
k-thành-phần A set of k items Tập k thành phần
Trang 14IdVM Improved dPidset Vertical – format – based algorithm for Mining
Top-Rank-k Erasable Itemsets
Cải thiện thuật toán dVM
MERIT fast Mining ERasable ITemsets
algorithm
Thuật toán MERIT
META Mining Erasable iTemsets with the
Antimonotone property algorithm
Thuật toán META
VME Vertical – format – based algorithm
for Mining Erasable Itemsets
Thuật toán VME
MEI An efficient algorithm for mining
erasable itemsets
Thuật toán MEI
NC_Set The set of NC Tập hợp các NC
PID_list The product identifier and gain list
(inverted list)
Danh sách mã loại sản phẩm và lợi nhuận (danh sách đảo)
pid_list The product identifier list Danh sách mã loại sản
WPPC-tree WPP-code tree Cây WPPC
MIKE Mining Top-Rank-k Erasable
Itemsets
Thuật toán MIKE
Trang 15I – MIKE Improving Efficiency of MIKE
Algorithm by Reducing Set Size
Thuật toán I – MIKE
VM Mining Top-Rank-k Erasable
Itemsets by PID-lists
Thuật toán VM
dVM A New Approach for Mining
Top-Rank-k Erasable Itemsets
Thuật toán dVM
Trang 16DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: Cơ sở dữ liệu DB 6
Bảng 2.2: Các Tập Xóa Được Trong DB với 𝜉 = 16% 9
Bảng 2.3: Các tập top – 5 có thể xóa được trong DBe 15
Bảng 2.4: Bảng 1 – thành phần 20
Bảng 2.5: Bảng Tabk 21
Bảng 2.6: Bảng Tạm 1 - thành phần TR1 21
Bảng 2.7:Ứng cứ viên 2 – thành phần 22
Bảng 2.8: Ứng cử viên 2 – thành phần được chèn vào trong Tabk 23
Bảng 2.9: Bảng tạm 2 – thành phân TR2 23
Bảng 2.10: Tập ứng cử viên 3- thành phần 24
Bảng 2.11: Ứng cử viên 3 – thành phần được chèn vào trong Tabk 24
Bảng 2.12: Kết quả trả về 5 thứ hạng đầu của tập thành phần có thể xóa 24
Bảng 2.13: Bảng 1 – thành phần sắp xếp tăng dần 27
Bảng 2.14: Tập con Candidate Set trong top ‘n’ 27
Bảng 2.15: Ứng cử viên trong top –rank - k 28
Bảng 2.16: Ứng cử viên được thêm vào selected_candidate set 28
Bảng 2.17: Kết quả trả về 5 thứ hạng đầu của tập thành phần có thể xóa 29
Bảng 2.18: Cơ sở dữ liệu đảo ngược 31
Bảng 2.19: Trình bày các bước của thuật toán VM 37
Bảng 2.20: Bảng cở sở dữ liệu đảo 1 – Thành Phần 41
Bảng 2.21: Bảng Tabk – R1 41
Bảng 2.22: Bảng TR1 42
Trang 17Bảng 2.23: Bảng CR2 42
Bảng 2.24: Bảng Tabk – R2 44
Bảng 2.25: Bảng TR 2 44
Bảng 2.26: Bảng CR3 44
Bảng 2.27: Bảng Tabk – R3 45
Bảng 2.28: Kết quả trả về 5 thứ hạng đầu của tập thành phần có thể xóa 45
Bảng 2.29:Bảng PID_List 1 – thành phần 52
Bảng 2.30:Bảng Tabk – R1 53
Bảng 2.31:Bảng TR1 53
Bảng 2.32:Bảng CR2 54
Bảng 2.33: Bảng Tabk – R2 55
Bảng 2.34: Bảng TR2 55
Bảng 2.35:Bảng CR3 56
Bảng 2.36:Bảng Tabk – R3 56
Bảng 2.37: Kết quả trả về 5 thứ hạng đầu của tập thành phần có thể xóa 56
Bảng 3.1: Bảng tập 1 – thành phần có lợi nhuận tăng dần 68
Bảng 3.2: Bảng Top n, với n =4 68
Bảng 3.3: Bảng Tabk – R1 69
Bảng 3.4: Bảng TR1 69
Bảng 3.5: Bảng CR2 70
Bảng 3.6: Bảng Tabk – R2 70
Bảng 3.7: Bảng TR2 71
Bảng 3.8: Bảng CR3 71
Trang 18Bảng 3.9:Bảng Tabk – R3 71
Bảng 3.10: Kết quả trả về 5 thứ hạng đầu của tập thành phần có thể xóa 72 Bảng 3.11:Cơ sở dữ liệu thử nghiệm 73
Trang 19DANH MỤC HÌNH ẢNH
Hình 3.1:Thời gian thực hiện trên dữ liệu Chess 74
Hình 3.2: Thời gian thực hiện trên dữ liệu Mushroom 74
Hình 3.3: Thời gian thực hiện trên dữ liệu T10I4D100k 75
Hình 3.4: Bộ nhớ sử dụng trên dữ liệu Chess 75
Hình 3.5: Bộ nhớ được sử dụng trên dữ liệu Mushroom 76
Hình 3.6: Bộ nhớ được sử dụng trên dữ liệu T10I4D100K 76
Trang 20CHƯƠNG 1: GIỚI THIỆU 1.1 Khai thác dữ liệu
Ngày nay, khối lượng dữ liệu bùng nổ và ngày càng tăng lên, các khối dữ liệu
có khắp mọi nơi làm cho chúng ta bị tràn ngập trong khối dữ liệu khổng lồ, đặc biệt
là những cơ sở dữ liệu thương mại của các công ty đa quốc gia, hay những cơ sở dữ liệu tầm vĩ mô Do vậy, khai phá dữ liệu ra đời để giúp ta chắt lọc được những thông tin có giá trị từ những khối dữ liệu thô khổng lồ mà chúng ta có được Khai thác dữ liệu có thể hiểu đơn giản là quá trình chắt lọc hay khai phá tri thức từ một khối dữ liệu lớn, đồng thời có thể loại bỏ những thông tin không cần thiết
Khai thác dữ liệu là một quá trình mà công ty sử dụng để chuyển dữ liệu thô thành các thông tin hữu ích, bằng cách sử dụng phần mềm để tìm kiếm các mẫu (thành phần sản xuất) trong một lô dữ liệu lớn, doanh nghiệp có thể tìm hiểu thêm về khách hàng của họ và phát triển chiến lược kinh doanh hiệu quả hơn cũng như tăng doanh thu và chi phí giảm Khai thác dữ liệu phụ thuộc vào hiệu quả bộ sưu tập dữ liệu, kho
dữ liệu cũng như máy tính xử lý
1.2 Khai thác tập xóa được
Khai thác tập xóa được, được tác giả Zhi-Hong Deng và các cộng sự giới thiệu vào năm 2009 Vấn đề khai thác tập xóa được bắt nguồn từ lập kế hoạch sản xuất Xem xét một nhà máy sản xuất, trong đó sản xuất một tập lớn các sản phẩm Từng loại sản phẩm được tạo thành từ một vài thành phần (hoặc vật liệu) Để sản xuất sản phẩm của mình, các nhà máy sản xuất phải dành một số lượng tiền lớn để mua hoặc dự trữ các thành phần (vật liệu) này Khi cuộc khủng hoảng tài chính đang đến, các nhà máy sản xuất xem xét một cách cẩn thận, nên
có kế hoạch sản xuất bởi vì họ không có đủ tiền để mua tất cả các thành phần cần thiết như bình thường Vì vậy, một câu hỏi quan trọng đối với các nhà quản lý của nhà máy là:” làm thế nào để lập kế hoạch sản xuất các sản phẩm do tiền hạn chế ” Họ không thể mua tất cả các thành phần do tiền hạn chế Rõ ràng, họ phải ngừng sản xuất một số sản phẩm bởi vì các nguyên liệu tương ứng là không có Tuy nhiên, vì mục đích lợi nhuận thương mại nên sự mất lợi nhuận của nhà máy, bởi việc ngừng sản xuất một số sản phẩm phải được kiểm soát Do đó,
Trang 21chìa khóa cho vấn đề là làm thế nào để tìm thấy một cách hiệu quả các thành phần này, mà không có sự mất mát về lợi nhuận vượt quá ngưỡng nhất định Các thành phần này cũng được gọi là “tập có thể xóa được”
Thuật toán đầu tiên cho khai thác tập có thể xóa được có tên là META [2] được Zhi-Hong Deng và các cộng sự giới thiệu vào năm 2009 Tiếp theo, nhóm tác giả này đã đưa ra một loạt thuật toán khác gồm: VME [3], MERIT [4], MEI [9]
1.3 Khai thác Top – Rank – K tập xóa được
Tuy nhiên, các đề xuất trong bài báo META [2] được giới thiệu vào năm 2009
sử dụng một ngưỡng phần trăm để đảm bảo sinh ra các tập có thể xóa được đầy đủ và đúng đắn Các điểm yếu chính của bài báo này là thiết lập ngưỡng phần trăm thì khá khó khăn, bởi vì, người dùng không thể biết được tỷ lệ chính xác trước Một tỷ lệ quá nhỏ có thể dẫn đến việc tạo ra hàng ngàn và hàng chục ngàn tập phổ biến xóa được, trong khi đó một ngưỡng quá lớn thường có thể tạo ra vài tập phổ biến xóa được Bên cạnh đó vấn đề khai thác top – rank – k tập xóa được, được trình bài trong năm 2011, trong đó k là giá trị thứ hạng lớn nhất của tất cả các tập xóa được Đối với nhiệm vụ khai thác dữ liệu mới này, nó cũng đề xuất một thuật toán đầu tiên hiệu quả được gọi
là MIKE khai thác top-rank-k tập xóa được Mặc dù thuật toán MIKE [5], I-MIKE [7], VM [6], dVM [8] có khả năng tìm kiếm tất cả các tập top-rank-k xóa được trong một thời gian hợp lý, nó có hai điểm yếu quan trọng Điểm yếu đầu tiên đó là thời gian hiệu quả của tất cả các thuật toán thì lâu vì nó duyệt cơ sở dữ liệu liên tục Nhược điểm thứ hai là chi phí tính toán của việc đạt được các ứng cử viên tập phổ biến là cao Trong đề tài này, chúng tôi trình bày một thuật toán mới, có thể khắc phục những điểm yếu của các thuật toán trên, để khai thác top-rank-k tập xóa được một cách hiệu quả
1.4 Giới thiệu đề tài
Khai thác dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng
lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó Nhiều vấn
Trang 22đề khai phá dữ liệu đã thu hút sự chú ý nghiên cứu, bao gồm phân lớp và dự đoán, phân cụm, khai phá chuỗi, luật kết hợp, khai thác các mẫu…Mặc dù có rất nhiều nghiên cứu về khai thác mẫu, chẳng hạn như khai thác mẫu tiện ích cao khai thác tập phổ biến, khai thác tập xóa được …với ứng dụng rộng rãi của khai thác mẫu trong mỗi bước đi của cuộc sống mà vấn đề là khai thác tập xóa được Các kết quả nghiên cứu cùng với ứng dụng thành công trong khai phá tập dữ liệu, khai thác mẫu, khám phá tri thức cho thấy khai phá dữ liệu là một khoa học tiềm năng, mang lại nhiều lợi ích, nó có ưu thế hơn hẳn với các công cụ phân tích truyền thống, nó đặt biệt hữu ích với cuộc khủng hoảng tài chính hoặc giảm bớt thành phần sản xuất mà vẫn đem lại lợi nhuận kinh tế trong suốt quá trình hoạt động của một công ty, nhà máy sản xuất hay một tổ chức nào đó
Bắt nguồn trong hoạt động sản xuất kinh doanh, con người đã tạo ra nhiều dữ liệu nghiệp vụ từ việc lập kế hoạch sản xuất Ví dụ khi một nhà máy sản xuất, nhà máy sẽ sản xuất ra một tập lớn các sản phẩm Từng loại sản phẩm sẽ được tạo nên từ một vài thành phần (hoặc nguyên vật liệu) Để sản xuất sản phẩm của mình, các nhà máy cần phải có một số lượng tiền rất lớn để mua hoặc dữ trữ các thành phần nguyên liệu Đó là trong tình trạng tài chính ổn định, nhưng nếu cuộc khủng hoảng tài chính xảy ra, lúc này nhà máy cần phải có một kế hoạch sản xuất để giải quyết về tài chính
vì họ không có đủ tiền để mua những thành phần cần thiết như bình thường Lúc này
họ phải ngừng sản xuất một số sản phẩm bởi vì các nguyên liệu tương ứng là không
có Vì mục đích lợi nhuận thương mại nên sự mất lợi nhuận của nhà máy bởi việc ngừng sản xuất một số sản phẩm phải được kiểm soát Do đó, vấn đề làm thế nào để giải quyết hiệu quả của các thành phần này mà không có sự mất mát về lợi nhuận vượt qua ngưỡng mà nhà máy đặt ra Để giải quyết vấn đề mà nhà máy đặt ra trên thực tế đã có các thuật toán như META [2], VME [3], MERIT+[4], MEI [9], MIKE [5], I-MIKE [7], VM [6], dVM [8] trong lĩnh vực khai thác tập xóa được Tuy nhiên, Deng, Fang, Wang, và Xu [2] sử dụng một phần trăm ngưỡng để đảm bảo rằng sự phát sinh chính xác và hoàn chỉnh tập các item có thể xóa Điểm yếu chính là thiết lập ngưỡng phần trăm thì khó khăn bởi vì người dùng không thể biết chính xác phần
Trang 23trăm đúng thời điểm Một phần trăm quá nhỏ có thể dẫn đến việc tạo ra hàng ngàn đến hàng chục ngàn tập các thành phần có thể xóa Trong các bài báo trước, Zhihong Deng và Xiaoran Xu, Gargi Narula, Sunita Parashar, Giang Nguyen đã giới thiệu một
tác vụ khai thác dữ liệu mới được gọi là khai thác k thứ hạng đầu tập các thành phần
có thể xóa, với k là giá trị thứ hạng lớn nhất của tất cả tập các thành phần có thể xóa được khai thác Với tác vụ khai thác mới này, các tác giả bài báo đã đề xuất ra nhiều
thuật toán như MIKE [5], I-MIKE [7], VM [6], dVM [8] để khai thác k thứ hạng đầu
tập các thành phần có thể xóa Họ cũng tiến hành thử nghiệm trên một số cơ sở dữ liệu tổng hợp để đánh giá giải thuật của họ Để đánh giá tính hiệu quả của một giải thuật thì vấn đề sử dụng bộ nhớ và tiêu tốn thời gian xử lý luôn luôn được xem xét hàng đầu Do đó, tôi xin nghiên cứu và đề xuất một thuật toán mới - IdVM dựa trên
sự kết hợp giữa thuật toán dVM và I-MIKE nhằm góp phần làm phong phú thêm các giải pháp cho bài toán trên và mong muốn cải thiện được tính hiệu quả của thuật toán
1.4.1 Mục tiêu và nội dung nghiên cứu
Tổng hợp và phân tích những kết quả nghiên cứu hiện nay trong khai thác top – rank – k tập xóa được
Đề xuất thuật toán mới IdVM với mong muốn sẽ cải thiện được tính hiệu
quả của thuật toán khai thác k thứ hạng đầu tập các thành phần có thể xóa
được (Top - Rank - K)
1.4.2 Cấu trúc luận văn
Chương 1: Giới Thiệu
Giới thiệu tổng quan về khai thác dữ liệu nói chung và tác vụ khai thác tập xóa được, khai thác top – rank – k tập xóa được nói riêng Khái quát mục đích và nội dung nghiên cứu của đề tài luận văn
Trang 24Chương 2: Cơ sở lý thuyết
Trình bày bài toán khai thác top – rank – k tập xóa được, các khái niệm trong khai thác top – rank – k tập xóa được Tổng hợp và phân tích các phương pháp, kết quả nghiên cứu hiện nay
Chương 3: Thuật toán IdVM cho khai thác Top – Rank - K tập xóa được
Đề xuất một phương pháp khai thác tập xóa được Bao gồm khái niệm cấu trúc
PID_List, dPID_List và những cấu trúc bổ sung, những định nghĩa, tính chất trong
phương pháp Thuật toán mới cải tiến thuật toán dVM trong khai thác được tạo ra từ
Top – Rank - K tập xóa được dựa trên dPID_List và tập ứng cử viên sinh ra từ top n
thành phần
Trình bày kết quả thử nghiệm và đánh giá phương pháp Luận văn tiến hành thực nghiệm trên cơ sở so sánh thuật toán dVM với một thuật toán mới IdVM
Chương 4: Kết luận và hướng phát triển
Tổng kết những nội dung chính của luận văn và trình bày những hướng phát triển trong tương lai
Trang 25CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Khai thác tập xóa được và khai thác top – rank – k tập xóa được là một tác vụ mới nhưng đã được nhiều tác giả trên thế giới quan tâm nghiên cứu và phát triển Chương này sẽ trình bày các khái niệm và phát biểu bài toán khai thác tập xóa được
và khai thác top – rank – k tập xóa được Liệt kê những phương pháp hiện có và đưa
PID là định danh của 𝑃𝑖 hay còn gọi là mã loại sản phẩm
Items là tất cả các thành phần (hoặc các thành phần) tạo thành 𝑃𝑖
Val là lợi nhuận mà một xí nghiệp sản xuất ( hoặc nhà máy ) thu được
bằng cách bán tất cả các sản phẩm loại 𝑃𝑖 Ngưỡng 𝜉 cho trước là ngưỡng giảm % lợi nhuận
Dưới đây là cơ sở dữ liệu thí dụ DB sẽ được dùng để làm ví dụ và minh họa
trong luận văn
Bảng 2.1: Cơ sở dữ liệu DB
Trang 262.1.2 Các định nghĩa
Một tập 𝐴 ⊆ 𝐼 được gọi là một tập thành phần (nguyên liệu) Nếu A có một phần tử thì A được gọi là 1 - thành phần Nếu A có k phần tử (2 ≤ k ≤ m) thì A được gọi là k - thành phần
Lợi nhuận của một tập thành phần là tổng lợi nhuận của tất cả các sản phẩm
có chứa ít nhất một phần tử thuộc tập thành phần đó
Định nghĩa 2.1: Cho 𝐴 ⊆ 𝐼 là một tập Items (một tập các thành phần), lợi
nhuận của A được định nghĩa là:
Trang 27Gain(A) = 𝑃7.Val + 𝑃8.Val + 𝑃9.Val + 𝑃10.Val + 𝑃11.Val
= 200 + 100 + 50 + 150 + 100 = 600 nghìn đô la
Định nghĩa 2.2: Cho một ngưỡng 𝜉 được xác định trước và một cơ sở dữ liệu
sản phẩm DB, một tập xóa được A nếu
𝑃7, 𝑃8, 𝑃9, 𝑃10 ℎ𝑜ặ𝑐 𝑃11 Tuy nhiên, lợi nhuận bị mất là không quá 16 % lợi nhuận ban đầu Tập xóa được đặc biệt hữu ích cho các nhà sản xuất quyết định làm thế nào để mua nguyên liệu thô và lập kế hoạch quá trình sản xuất sản phẩm trong trường hợp khủng hoảng kinh tế
Ví dụ 1: cho 𝜉 = 16%, tập 2 - thành phần A = {𝑒, ℎ} trong DB là tập xóa được
do Gain(A) = 600 ≤ 16% × 5000 = 800
Trang 28Xem xét các cơ sở dữ liệu trong ví dụ sản phẩm được thể hiện trong bảng 2.1 Cho 𝜉 là 16% Theo định nghĩa 2.2, toàn bộ tập phổ biến xóa được như sau:
Bảng 2.2: Các Tập Xóa Được Trong DB với 𝜉 = 16%
STT Tập Xóa Được Lợi Nhuận STT Tập Xóa Được Lợi Nhuận
2.2 Một số thuật toán khai thác tập xóa được
2.2.1 Thuật toán META:
META (Mining Erasable iTemsets with the Anti-monotone property) là thuật
toán đầu tiên trong khai thác các tập thành phần không hữu ích được Zhi-Hong Deng
và các cộng sự giới thiệu vào năm 2009 Thuật toán này thực ra dựa trên ý tưởng của thuật toán Apriori [1] trong khai thác mẫu phổ biến Các kết quả của META [2] là các tập xóa được Tuy nhiên, thời gian khai thác của thuật toán này dài bởi vì:
META duyệt cơ sở dữ liệu lần đầu tiên để xác định tổng số lợi nhuận
của các nhà máy và k lần để xác định thông tin kết hợp với mỗi EI, với
k là mức tối đa của kết quả EIs Ví dụ 1: META tìm thấy một tập hoặc
xóa được nhiều hơn 5 tập, đó là mức tối đa của EIs Do đó, META duyệt các cơ sở dữ liệu 6 lần
Chiến lược META sử dụng để tạo ra các tập ứng cử viên nó là một chiến lược ngây thơ trong đó một tập xóa được (k - 1), X được xem như
là tất cả phần xóa được còn lại tập (k -1), sử dụng để kết hợp và tạo ra
Trang 29tập xóa được k Chỉ có một số lượng nhỏ phần còn lại của tất cả tập xóa được (k- 1) có tiền tố giống như của X được kết hợp Ví dụ 1: xem tập xóa được 2 thành phần {ab, ac, ad, bc, bd, cd}, META xét các yếu tố đầu tiên {ab} để kết hợp với tất cả tập xóa được còn lại của tập 2 thành phần {ac, ad, bc, bd, cd} Chỉ {ac, ad} được sử dụng để kết hợp với {ab}, và {bc, bd, cd} là không cần thiết
2.2.2 Thuật toán VME:
VME (Vertical-format-based algorithm for Mining Erasable Itemsets) được Zhi-Hong Deng và các cộng sự giới thiệu vào năm 2010 Các tác giả đã đề xuất phương pháp tiếp cận cơ sở dữ liệu theo định dạng chiều dọc (cơ sở dữ liệu đảo), cùng một cấu trúc dữ liệu là PID-list nhằm khai thác các tập không hữu ích một cách hiệu quả, đồng thời tự động loại bỏ dữ liệu dư thừa Theo kết quả thực nghiệm của các tác giả, thuật toán VME [3] có thời gian thực hiện trung bình nhanh hơn gấp hai lần so với thuật toán META [2] Thuật toán này nhanh hơn so với thuật toán META bởi vì nó duyệt cơ sở dữ liệu chỉ có hai lần Một số điểm yếu liên quan đến VME được chỉ ra như sau:
VME duyệt cơ sở dữ liệu để xác định tổng lợi nhuận của các nhà máy và sau đó duyệt cơ sở dữ liệu một lần nữa để tìm thấy tất cả tập xóa được 1 thành phần và PID_Lists nó Duyệt các cơ sở dữ liệu mất rất nhiều thời gian và bộ nhớ Cơ sở dữ liệu có thể được duyệt một lần chỉ khi xem xét cẩn thận
VME sử dụng chiến lược tìm kiếm theo chiều rộng trước trong đó tất
cả các tập xóa được (k – 1) được sử dụng để tạo ra tập k Tuy nhiên phân loại tập xóa được (k-1) với cùng một tiền tố như tập xóa được (k-2) mất rất nhiều thời gian và quá trình hoạt động Ví dụ tập xóa được 2 thành phần là {ab, ac, ad, bc, bd, cd} trong đó có 3 tiền tố là tập 1- thành phần cụ thể là {a}, {b} và {c} Thuật toán này chia phần tử thành các nhóm xóa được 2 thành phần, nó giống tiền tố như tập xóa được một
Trang 30thành phần Đặc biệt tập xóa được 2 - thành phần được phân thành 2 nhóm {ab, ac, ad}, {bc, bd}, and {cd} Sau đó, thuật toán này kết hợp từng phần tử của mỗi nhóm để tạo ra các ứng cử viên xóa được 3 thành phần đó là {abc}, {abd}, {acd}, và {bcd}
VME sử dụng các chiến lược liên minh, trong đó X’s PID_List là một tập hợp con của Y’s PID_List nếu X ⊆ Y Chiến lược này đòi hỏi nhiều
bộ nhớ và quá trình hoạt động cho một số lượng lớn các EIs
VME lưu trữ lợi nhuận của mỗi sản phẩm (Val) trong một cặp <PID, Val> của PID_List Điều này dẫn đến trùng lắp dữ liệu vì một cặp <PID, Val> có thể xuất hiện trong nhiều PID_Lists Do đó, thuật toán này đòi hỏi nhiều bộ nhớ Sử dụng bộ nhớ có thể được giảm bằng cách sử dụng chỉ số đạt được
2.2.3 Thuật toán MERIT/MERIT+:
MERIT (Fast Mining ERasable ITemsets) được Zhi-Hong Deng và các cộng
sự trình bày vào năm 2011 Phuơng pháp này đưa ra một cấu trúc biểu diễn dữ liệu là
NC-set cho phép lưu trữ đầy đủ thông tin cần thiết từ cơ sở dữ liệu phục vụ cho khai
thác các tập không hữu ích Cấu trúc NC-set được xác định dựa trên cấu trúc
WPPC_tree, một cấu trúc cây theo ý tưởng cây FP MERIT hiệu quả trong khai thác
các tập không hữu ích với cấu trúc NC-set nhờ vào những kỹ thuật sau:
NC-set là một cấu trúc chặt chẽ và tự động loại bỏ dữ liệu thừa
Lợi nhuận của một tập thành phần được tính dựa trên kết hợp các
NC-set lại một cách khéo léo, với độ phức tạp tuyến tính
MERIT hạn chế phát sinh các tập ứng viên
Thuật toán được đánh giá bằng những thí nghiệm trong phạm vi rộng, dựa trên nhiều cơ sở dữ liệu tổng hợp Nghiên cứu về hiệu suất cho thấy MERIT là một thuật toán hiệu quả, có tốc độ trung bình nhanh hơn gấp hai lần so với thuật toán META
Tuy nhiên, tương tự như VME, MERIT vẫn có ba điểm yếu sau đây:
Trang 31 MERIT sử dụng các chiến lược liên minh, trong đó X’s NC_Set tập hợp con của Y’s NC_Set nếu X ⊆ Y Kết quả là, việc sử dụng bộ nhớ của MERIT là lớn và cho một số lượng lớn các EIs
MERIT duyệt cơ sở dữ liệu ba lần để xây dựng cây WPPC Sau đó, nó duyệt cây WPPC hai lần để tạo ra các NC_Set của tập xóa được 1 thành phần Các bước trước đó mất rất nhiều thời gian và quá trình hoạt động
MERIT lưu trữ các giá trị lợi nhuận của sản phẩm trong mỗi NC của NC_Set, dẫn đến trùng lắp dữ liệu
MERIT có một số vấn đề mà nó là nguyên nhân gây ra sự mất mát số lượng lớn EIs:
MERIT sử dụng một tuyên bố nếu kiểm tra tất cả các tập con (k - 1) thành phần của một k - thành phần, X xóa được hay không để tránh việc thực hiện các thủ tục NC_Combination Tuy nhiên, MERIT sử dụng chiến lược tìm kiếm theo chiều sâu, do đó không đủ ( k – 1 ) thành phần trong kết quả kiểm tra này Nếu tuyên bố luôn luôn là sai Do đó, tất cả các xóa được k - thành phần ( k > 2) luôn không xóa được Kết quả của MERIT là có thể xóa tập 1- thành phần và xóa được tập 2 - thành phần Khi X’s NC_Set được xác định, thuật toán này ngay lập tức có thể quyết định xem X là xóa được
MERIT mở rộng các lớp tương đương của ECv[k] Do đó, kết quả của thuật toán này không phải tất cả EIs Điều này cải thiện thời gian khai thác, nhưng không phải tất cả EIs được khai thác
Thuật toán MERIT+: Thuật toán MERIT đã được nhóm tác giả Tuong Le., Bay Vo và Frans Coenen nghiên cứu và cải tiến vào năm 2013 Các tác giả đã chỉ ra một sai sót nghiêm trọng của MERIT và khắc phục bằng thuật toán MERIT+ Đồng thời giới thiệu một thuật toán mới là dMERIT+ nhằm cải tiến những hạn chế của MERIT
Trang 32Điểm sai của MERIT là không tìm được đầy đủ các tập không hữu ích Nguyên nhân đã được tác giả MERIT+ chỉ ra như sau:
Thủ tục Mining_E kiểm tra tất cả các tập con (k-1)-thành phần của một
k-thành phần X có là tập không hữu ích hay không để xác định tính
không hữu ích của X Tuy nhiên, MERIT sử dụng chiến lược tìm kiếm theo chiều sâu nên không thể xét đầy đủ các tập con (k-1)-thành phần trong từng bước Do đó bước kiểm tra này luôn cho kết quả sai khi k >
2 và mọi tập con (k-1)-thành phần đều không phải là tập không hữu ích
Thủ tục Mining_E mở rộng các lớp tương đương EC v [k], do đó các kết
quả của MERIT không bao gồm đầy đủ các tập không hữu ích
2.2.4 Thuật toán dMERIT+
Thuật toán dMERIT+ được các tác giả Tuong Le., Bay Vo., và Frans Coenen giới thiệu vào năm 2013 Đây là một thuật toán cải tiến từ thuật toán MERIT/MERIT+ dMERIT+ khai thác tập không hữu ích dựa trên cấu trúc dNC-set
và một bảng chỉ mục trọng số (Weight index) của các thành phần, giúp cải thiện thời gian thực hiện và bộ nhớ sử dụng của MERIT/MERIT+
2.2.5 Thuật toán MEI
Thuật toán MEI chỉ duyệt cơ sở dữ liệu một lần, nó sử dụng chiến lược chia
để trị và khái niệm khác biệt pidset (dPidset) cho khai tác tập xóa được một cách đầy
đủ Một số định lý cho tính toán hiệu quả tập thông tin để giảm thời gian khai thác và
ít tốn bộ nhớ MEI thì hiệu quả hơn VME và MERIT + trong điều kiện về khai thác thời gian và sử dụng bộ nhớ Nó có khả năng khai thác EIs với ngưỡng cao hơn so với những người thu được sử dụng VME và MERIT+ Kết quả thực nghiệm cho thấy rằng hiện nay phương pháp MEI tốt hơn cả về thời gian khai thác và sự dụng bộ nhớ Hơn nữa, các thuật toán đề xuất khả năng khai tác EIs với ngưỡng cao hơn so với những người thu được bằng cách sử dụng các phương pháp hiện có
Trang 332.3 Thuật toán Top – Rank – K
Một kỹ thuật trong khai thác dữ liệu nói chung và khai thác tập không hữu ích
nói riêng là “ khai thác các tập top – rank – k “ Trong đó k là giá trị “ hạng” cao nhất
để từ đó tìm các tập có thể xóa được
2.3.1 Các định nghĩa
Định nghĩa 2.3:(Lợi nhuận) Cho một tập hợp các thành phần A (⊆ 𝐼), lợi
nhuận của A được định nghĩa như sau:
Lợi nhuận của tập các thành phần A là tổng các giá trị của các sản phẩm bao gồm ít nhất 1 - thành phần trong A là thành phần của chúng
Định nghĩa 2.4 ( Rank của tập các Item ) Cho cơ sở dữ liệu sản phẩm DB
và một mẫu A(⊆ 𝐼), RA, rank của A được định nghĩa:
𝑹𝒂𝒏𝒌 (𝑨) = |{𝑮𝒂𝒊𝒏 (𝑿)| 𝑿 ⊆ 𝑰 𝒂𝒏𝒅 𝑮𝒂𝒊𝒏( 𝑿) ≤ 𝑮𝒂𝒊𝒏 (𝑨)}|
Chú ý rằng |Y| là số phần tử của Y
Định nghĩa 2.5: ( k thứ hạng đầu tập các thành phần có thể xóa ) Cho một
giao tác cơ sở dữ liệu DB và một ngưỡng k, một tập các thành phần A (⊆ 𝐼) được gọi
là k thứ hạng đầu tập các thành phần có thể xóa nếu và chỉ nếu RA không lớn hơn k
(RA≤ 𝑘)
Dựa vào các định nghĩa trên, bài toán khai thác k thứ hạng đầu tập các thành
phần có thể xóa được mô tả như sau: Cho một giao tác cơ sở dữ liệu DB và một
ngưỡng k, khai thác k thứ hạng đầu tập các thành phần có thể xóa là tác vụ tìm kiếm một tập hoàn chỉnh có thể xóa được mà thứ hạng của nó không lớn hơn k.
Xét một ví dụ được trình bày ở bảng 2.1 Có 8 thành phần khác nhau và 11 sản phẩm, mỗi sản phẩm bao gồm 3 trường: PID, Items và Val Dựa trên bảng 2.1, Cho ngưỡng k là 5 Bảng 2.3 sẽ biểu diễn 5 thứ hạng đầu tập các thành phần có thể xóa
(4) (3)
Trang 34Bảng 2.3: Các tập top – 5 có thể xóa được trong DB e
theo giá trị lợi nhuận
Trang 352 Dựa trên các 1-thành phần trong 𝑇𝑎𝑏𝑘 để tìm các ứng viên 2-thành phần Nếu lợi nhuận của một ứng viên 2-thành phần không vượt quá giá trị lợi nhuận lớn nhất trong 𝑇𝑎𝑏𝑘 thì chèn vào bảng 𝑇𝑎𝑏𝑘 Sau mỗi lần chèn tập thành phần vào 𝑇𝑎𝑏𝑘, kiểm tra nếu số bộ trong 𝑇𝑎𝑏𝑘 vượt quá k thì xóa các bộ nằm sau bộ thứ k
3 Lặp lại (2) sinh các tập xóa được top-k (l+1)-thành phần dựa trên các
l-thành phần tập xóa được top-k cho đến khi không còn tìm được tập nào nữa
2.3.2 Phát biểu bài toán và cơ sở lý thuyết
Cho 𝐼 = (𝑖1, 𝑖2, … 𝑖𝑚) là một tập hợp các thành phần đại diện cho các thành phần của sản phẩm
Tập 𝐷𝐵 = (𝑃1, 𝑃2, … 𝑃𝑛) trong đó 𝑃𝑖( 𝑖 ∈ [1 … 𝑛] ) là một loại sản phẩm được trình bày dưới hình thức 〈𝑃𝐼𝐷, 𝐼𝑡𝑒𝑚𝑠, 𝑉𝑎𝑙〉 Trong đó:
PID là định danh của 𝑃𝑖 hay còn gọi là mã loại sản phẩm
Items là tất cả các thành phần ( hoặc các thành phần ) tạo thành 𝑃𝑖
Val là lợi nhuận mà một xí nghiệp sản xuất ( hoặc nhà máy ) thu được
bằng cách bán tất cả các sản phẩm loại 𝑃𝑖
Một ngưỡng k, một tập các thành phần A (⊆ 𝐼) được gọi là k thứ hạng đầu tập
các thành phần có thể xóa nếu và chỉ nếu RA không lớn hơn k (RA≤ 𝑘)
2.4 Một số thuật toán Top – Rank – k tập xóa được
2.4.1 Thuật toán MIKE
Một giải thuật hiệu quả cho bài toán khai thác k thứ hạng đầu tập các thành phần có thể xóa được Một phương pháp đơn giản để tìm được tất cả các k thứ hạng
đầu tập các thành phần có thể xóa được là liệt kê tất cả tập các thành phần, tính toán thu được lợi nhuận của chúng và sắp xếp chúng theo thứ tự tăng dần theo lợi nhuận
của chúng Cuối cùng chúng ta đạt được k thứ hạng đầu tập các thành phần có thể xóa
Trang 36được từ tập được sắp xếp Tuy nhiên, phương pháp này thì không hiệu quả Hãy phân tích độ phức tạp của phương thức này Cho m là số lượng các thành phần khác nhau Chúng ta biết rằng có (2m-1) tập các thành phần khác rỗng Do đó, độ phức tạp của thuật toán là O(2m), đó là thời gian theo cấp số nhân và không thể chấp nhận Thiếu sót chính của phương pháp này là thực hiện tìm kiếm theo Brute-force, mà theo cách này nó sẽ chiếm toàn bộ không gian và xem xét mọi giải pháp có thể Như vậy nó cần
thiết để thiết kế một thuật toán hiệu quả để tìm k thứ hạng đầu tập các thành phần có
thể xóa được Trước khi trình bày thuật toán của Zhihong Deng và Xiaoran Xu, trước tiên hãy tìm hiểu một số tính chất liên quan đến khai thác tập các thành phần có thể xóa
2.4.1.1 Định nghĩa và bổ đề
Bổ đề 2.1
Nếu tập A không là k thứ hạng đầu tập các thành phần có thể xóa, thì bất kỳ tập các thành phần B chứa A, còn gọi là tập cha của A, không thể là một k thứ hạng đầu tập các thành phần có thể xóa
Chứng minh: cho tập B là tập cha của A Cho bất cứ sản phẩm Pi thỏa Pi.Items
∩ A ≠ ∅, chúng ta biết rằng Pi.Items ∩ 𝐵 ≠ ∅ vì A ⊆ 𝐵 Theo định nghĩa 2.4 chúng
Trang 37Rank(B) < Rank(A) Theo định nghĩa 2.4 chúng ta có:
Cho một cơ sở dữ liệu sản phẩm DB, một ngưỡng k và một tập hợp tập các
thành phần PS (⊆ 2I, 2I là số tập con của I) Cho bất kỳ tập các thành phần A(∈PS),
A không thể là k thứ hạng đầu tập các thành phần có thể xóa của DB nếu R(A,PS) lớn hơn k
Chứng minh: cho bất kỳ X ∈ PS, chúng ta có X ⊆ I Theo định nghĩa 2.4 và
bổ đề 2.1 chúng ta có
R(A,PS) ≤ Rank(A)
Lý do là { Gain(X) | X ⊆ 𝐼 và Gain(X) ≤ Gain(A)} chứa {Gain(X) | X ∈ PS
và Gain(X) ≤ Gain(A)} Tuy nhiên, chúng ta đã biết :
Trang 38Bằng cách sử dụng định nghĩa và bổ đề 2.2, chúng ta có thể làm giảm không
gian tìm kiếm của khai khoáng k thứ hạng đầu tập các thành phần có thể xóa MIKE,
thuật toán khai thác, được thảo luận trong đoạn sau Chúng ta ký hiệu một tập các thành phần có chiều dài 𝑙 bằng 𝑙- thành phần Chiều dài của một tập thành phần là số lượng của các phần tử bên trong tập thành phần đó MIKE sử dụng cách tiếp cận lặp, được biết đến như là tìm kiếm ở mức độ khôn ngoan Phương pháp lặp sử dụng 𝑙- thành phần để tìm kiếm (𝑙+1) - thành phần Dưới đây là các thủ tục xử lý
2.4.1.2 Phương pháp
Giá trị đầu vào: Cơ sở dữ liệu sản phẩm DB và một ngưỡng k
Đầu ra: Bảng k thứ hạng đầu, Tabk bao gồm tất cả k thứ hạng đầu tập các thành
Bước 2: Duyệt cơ cơ sở dữ liệu sản phẩm DB Thu thập tập hợp k thứ hạng
đầu tập 1- thành phần có thể xóa Chèn tập 1- thành phần có thể xóa vào Tabk
Bước 3: Sử dụng tập 1- thành phần có thể xóa trong Tabk để phát sinh những ứng viên tập 2- thành phần Duyệt DB một lần nữa để thu được lợi nhuận của các ứng viên tập 2- thành phần Nếu lợi nhuận của ứng viên tập 2- thành phần không lớn hơn giá trị tối đa của lợi nhuận trong Tabk, ứng viên 2- thành phần được chèn vào Tabk Sau mỗi thao tác chèn, Tabk được kiểm tra để chắc rằng số lượng bộ không nhiều hơn
k Nếu số lượng bộ nhiều hơn k, thì bộ phía sau bộ thứ hạng thứ k sẽ bị xóa khỏi Tabk
Bước 4: Lặp lại bước 3 bằng cách sử dụng k thứ hạng đầu tập 𝑙- thành phần
có thể xóa trong Tabk, để tạo ra các ứng viên k thứ hạng đầu tập ( 𝑙+1) - thành phần
có thể xóa cho đến khi không có tập các thành phần có thể xóa mới được chèn vào
Trang 39Tabk Cách tạo ra các tập ứng viên k thứ hạng đầu tập ( 𝑙+1) – thành phần có thể xóa
bằng cách sử dụng k thứ hạng đầu các tập 𝑙- thành phần có thể xóa được trình bày
như sau:
Cho bất cứ 𝑙- thành phần A1 ∈ Tabk và A2 ∈ Tabk , chúng ta tạo các tập ứng viên (𝑙+1) - thành phần A = A1 ∪ A2 nếu A1 và A2 có cùng thành phầns của 𝑙-1
Chú ý rằng bổ đề 2.1 để chắc rằng bước 3 và 4 không bỏ qua bất kỳ k thứ hạng
đầu tập các thành phần có thể xóa nào trong khi bổ đề 2.2 đảm bảo tính hợp lý của điều kiện chấm dứt vòng lặp trong bước 4
2.4.1.3 Minh họa
Cho DB e và k = 5 Tìm 5 thứ hạng đầu của tập thành phần có thể xóa
Bước 1: Khởi tạo Tabk rỗng bao gồm 2 trường thành phần sản phẩm và lợi nhuận
Bước 2: Duyệt cơ sở dữ liệu sản phẩm DB, thu được bảng 1 – thành phần có thể xóa