Tải bản đầy đủ (.pdf) (83 trang)

KHAI THÁC SONG SONG tập PHỔ BIẾN dựa TRÊN VECTOR BIT ĐỘNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8.97 MB, 83 trang )

ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


NGUYỄN TẤN THÀNH

KHAI THÁC SONG SONG TẬP PHỔ BIẾN
DỰA TRÊN VECTOR BIT ĐỘNG

LUẬN VĂN THẠC SĨ
NGÀNH: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. Lê Hoài Bắc

TP. HỒ CHÍ MINH – 2015


2

LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc đến Thầy, PGS. TS. Lê Hoài Bắc, người đã
hết lòng hướng dẫn, động viên và giúp đỡ cho tôi hoàn thành luận văn này.
Tôi cũng xin chân thành gửi lời cám ơn đến quý Thầy Cô trường Đại Học
Công nghệ thông tin TP.HCM đã tận tình dạy dỗ, chỉ bảo kiến thức quí báu giúp tôi
hoàn thành khóa học đúng tiến độ và là nền tảng cho nghiên cứu của mình.
Xin cảm ơn Phòng Sau đại học đã nhiệt tình hỗ trợ về mặt thủ tục, giấy tờ.
Cuối cùng, xin chân thành cảm ơn cha mẹ, chị em, bạn bè và đồng nghiệp đã
khích lệ, động viên, tạo điều kiện thuận lợi cho tôi trong suốt thời gian thực hiện
luận văn.


TP. HCM, tháng 10 năm 2015
Tác giả luận văn
Nguyễn Tấn Thành

2


3

LỜI CAM ĐOAN
Tôi xin cam đoan nội dung của luận văn này là công trình nghiên cứu của
chính bản thân tôi. Tất cả các tài liệu tham khảo từ các nghiên cứu có liên quan đều
đã được nêu rõ nguồn gốc trong phần tài liệu tham khảo. 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ác giả luận văn
Nguyễn Tấn Thành

3


4

MỤC LỤC
Chương 1.
1.1.

TẬP PHỔ BIẾN............................................................................................. 13


Tập phổ biến .......................................................................................................... 13

1.1.1.

Định nghĩa...................................................................................................... 13

1.1.2.

Các tính chất của tập phổ biến ....................................................................... 14

1.1.3.

Cách biểu diễn dữ liệu ................................................................................... 14

1.2.

Một số thuật toán khai thác tập phổ biến .............................................................. 16

1.2.1.

Phương pháp sinh ứng viên – thuật toán Apriori: .......................................... 16

1.2.2.

Thuật toán Eclat ............................................................................................. 20

1.2.3.

Thuật toán FP-Growth ................................................................................... 21


1.2.4.

Thuật toán BitTableFI .................................................................................... 21

Chương 2.

MỘT SỐ TIẾP CẬN TRONG KHAI THÁC SONG SONG TẬP PHỔ BIẾN
23

2.1.

Nguyên lý thiết kế thuật toán song song ............................................................... 23

2.2.

Một số thuật toán khai thác song song tập phổ biến ............................................. 23

2.2.1.

Hệ thống bộ nhớ phân tán và bộ nhớ chia sẻ ................................................. 24

2.2.2.

Mô hình song song dữ liệu và song song tác vụ ............................................ 25

2.2.3.

Chiến lược cân bằng tải động và tĩnh. ........................................................... 25

2.2.4.


Thuật toán khai thác song song tập phổ biến dựa trên Apriori ...................... 27

2.2.5.

Khai thác song song tập phổ biến dựa trên Eclat ........................................... 39

2.2.6.

Khai thác song song tập phổ biến dựa trên FP-Growth ................................. 43

2.2.7.

Thuật toán song song Apriori trên nền tảng Hadoop MapReduce ................ 46

Chương 3. KHAI THÁC SONG SONG TẬP PHỔ BIẾN DỰA TRÊN MẢNG TÂM
THU VÀ VECTOR BIT ĐỘNG ......................................................................................... 51
3.1.

Khai thác tập phổ biến với vector bit động ........................................................... 51

3.1.1.

Khái niệm ....................................................................................................... 51

3.1.2.

Cấu trúc vector bit động (DBV – Dynamic Bit Vector) ................................ 51

3.1.3.


Thuật toán tìm phần giao giữa hai vector bit động ........................................ 52

3.1.4.

Một số nhận xét về thuật toán ........................................................................ 53

3.1.5.

Cách tính nhanh độ phổ biến của một tập mục .............................................. 54

3.2.

Khai thác song song tập phổ biến với mảng tâm thu ............................................ 54

3.2.1.

Khái quát về mảng tâm thu ............................................................................ 54

3.2.2.

Bài toán khai thác song song tập phổ biến sử dụng mảng tâm thu ................ 56

3.2.3.

Sử dụng phương pháp chia để trị trong khai thác song song tập phổ biến .... 62

3.2.4.

Mảng tâm thu hai chiều ................................................................................. 63


3.2.5.

Thuật toán khai thác song song tập phổ biến với mảng tâm thu 2 chiều ....... 64

4


5
3.3. Thuật toán khai thác song song tập phổ biến dựa trên mảng tâm thu và vector bit
động ............................................................................................................................... 67
Chương 4.

KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................. 76

4.1.

Kết quả thực nghiệm ............................................................................................. 76

4.2.

Kết luận và đánh giá .............................................................................................. 80

4.3.

Hướng nghiên cứu tiếp theo .................................................................................. 81

5



6

DANH MỤC CÁC KÝ HIỆU VIẾT TẮT

KÍ HIỆU

Ý NGHĨA

CSDL

Cơ sở dữ liệu

DB

Cơ sở dữ liệu (Database)

FP-Tree

Cây phổ biến mẫu ( Frequent Pattern Tree)

HDFS

Hệ thống tập tin phân tán Hadoop (Hadoop Distributed
File System)

KTDL

Khai thác dữ liệu

minconf


Độ tin cậy tối thiểu

minsup

Độ hỗ trợ tối thiểu

DBV

Vector bit động (Dynamic Bit Vector)

Sup

Độ hỗ trợ (support)

SABMA

Thuật toán khai thác dựa trên mảng tâm thu (Systolic
Array Based Mining Algorithm)

DBV_SABMA

Thuật toán khai thác dựa trên mảng tâm thu – Vector bit
động (Dynamic Bit Vector- Systolic Array Basic
Mining Algorithm)

6


7


DANH MỤC CÁC BẢNG
Bảng 1.1. Cơ sở dữ liệu mẫu ............................................................................................... 13
Bảng 1.2. Minh họa dữ liệu định dạng theo chiều dọc ........................................................ 15
Bảng 1.3. Minh họa dữ liệu biểu diễn bằng ma trận bit ...................................................... 16
Bảng 1.4. Các tập phổ biến có 1 danh mục.......................................................................... 18
Bảng 1.5. Các tập phổ biến có 2 danh mục......................................................................... 18
Bảng 1.6. Các tập phổ biến có 3 danh mục......................................................................... 19
Bảng 1.7. Các tập phổ biến có 4 danh mục......................................................................... 19
Bảng 2.1. Phân hoạch cơ sở dữ liệu D ................................................................................. 29
Bảng 2.2. Tập phổ biến 1-itemset ....................................................................................... 30
Bảng 2.3. Tập phổ biến 2-itemset ........................................................................................ 30
Bảng 2.4. Tập phổ biến 3-itemset ........................................................................................ 31
Bảng 2.5. Tập phổ biến 4-itemset ........................................................................................ 32
Bảng 2.6: Tập phổ biến 5-itemset ........................................................................................ 32
Bảng 2.7. Tập phổ biến 1-itemset ........................................................................................ 35
Bảng 2.8 : Tập phổ biến 2-itemset ....................................................................................... 35
Bảng 2.9. Tập phổ biến 3-itemset ........................................................................................ 35
Bảng 2.10. Tập phổ biến 4-itemset ...................................................................................... 36
Bảng 2.11. Tập phổ biến 5-itemset ..................................................................................... 36
Bảng 2.12. CSDL minh họa thuật toán song song Eclat...................................................... 41
Bảng 2.13. Phân hoạch CSDL cục bộ .................................................................................. 44
Bảng 3.1. Bảng tra số bit 1................................................................................................... 54
Bảng 3.2. Biểu diễn cấu trúc DBV cho mỗi item trong hình 3.7 ......................................... 68

7


8


DANH MỤC CÁC HÌNH
Hình 1.1. Thuật toán Apriori ............................................................................................... 17
Hình 2.1. Kiến trúc bộ nhớ chia sẻ trong khai thác dữ liệu [13].......................................... 24
Hình 2.2. Kiến trúc bộ nhớ phân tán trong khai thác dữ liệu [13] ....................................... 24
Hình 2.3. Phân loại mô hình một số thuật toán song song điển hình [7] ............................. 26
Hình 2.4. Thuật toán Count Distribution [7] ....................................................................... 28
Hình 2.5. Thuật toán song song Eclat [7] ............................................................................ 41
Hình 2.6. Khai thác tập mục phổ biến sử dụng thuật toán song song Eclat ........................ 42
Hình 2.7. Cấu trúc FP-Tree cục bộ được xây dựng từ các phân hoạch cơ sở dữ liệu. ........ 44
Hình 2.8. Khai thác tập mục phổ biến sử dụng thuật toán song song FP-Growth ............... 45
Hình 2.9. Minh họa quá trình sinh ra tập phổ biến 1-itemsets ............................................. 47
Hình 2.10. Thuật toán Mapper, Combiner and Reducer [12] .............................................. 49
Hình 3.1. Minh họa về cấu trúc DBV .................................................................................. 51
Hình 3.2. Thí dụ về cách tìm phần giao giữa hai DBV ....................................................... 52
Hình 3.3. Thuật toán tìm phần giao giữa hai DBV .............................................................. 53
Hình 3.4. Một cell của mảng tâm thu .................................................................................. 55
Hình 3.5. Một số mô hình phổ biến của mảng tâm thu........................................................ 55
Hình 3.6. Chức năng của một cell trong mảng tâm thu 1 chiều .......................................... 56
Hình 3.7. Thí dụ một bộ dữ liệu .......................................................................................... 57
Hình 3.8. Ma trận bit rút gọn với minsup=2 ........................................................................ 57
Hình 3.9. Ma trận bit chuyển đổi từ tập phần tử tương ứng với hình 3.8 ............................ 58
Hình 3.10. Khởi tạo ban đầu của mảng tâm thu .................................................................. 58
Hình 3.11. Lần đầu tiên gửi giá trị đầu vào qua mảng tâm thu ........................................... 60
Hình 3.12. Lần thứ hai gửi giá trị đầu vào qua mảng tâm thu ............................................. 61
Hình 3.13. Lần thứ ba gửi giá trị đầu vào qua mảng tâm thu .............................................. 62
Hình 3.14. Khởi tạo ban đầu của mảng tâm thu để khai thác tập phần tử có chứa “a” ....... 63
Hình 3.15. Khai thác tập dữ liệu phổ biến với mảng tâm thu hai chiều .............................. 64
Hình 3.16. Thuật toán SABMA [9] ..................................................................................... 65
Hình 3.17. Chức năng của một bộ xử lý trong mảng tâm thu.............................................. 67
Hình 3.18. Khởi tạo mảng tâm thu để khai thác tập mục có chứa “a” dựa trên DBV ......... 69

Hình 3.19. Khởi tạo mảng tâm thu 2 chiều để khai thác tập phổ biến dựa trên DBV ......... 69
Hình 3.20. Mã giả minh họa thuật toán DBV_SABMA ...................................................... 71
Hình 3.21. Minh họa giá trị khởi tạo cho lần di chuyển đầu tiên ........................................ 72
Hình 3.22. Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ 2 qua mảng tâm thu ................ 74
Hình 3.23. Giá trị khởi tạo chuẩn bị cho lần di chuyển thứ 3 qua mảng tâm thu ................ 74
Hình 4.1. Kết quả thử nghiệm với bộ dữ liệu Retail ........................................................... 77
Hình 4.2. Kết quả thử nghiệm với bộ dữ liệu T10I4D100K ................................................ 77
Hình 4.3. Kết quả thử nghiệm với bộ dữ liệu Mushroom .................................................... 78
Hình 4.4. Kết quả thử nghiệm với bộ dữ liệu giao dịch Coopmart ..................................... 79

8


9

MỞ ĐẦU
1. Đặt vấn đề
Với tốc độ phát triển của công nghệ thông tin hiện nay, kho dữ liệu mà con
người đang sở hữu vô cùng phong phú, đa dạng và không ngừng gia tăng với tốc độ
chóng mặt. Lượng dữ liệu khổng lồ này thực sự là nguồn tài nguyên rất giá trị bởi
thông tin là yếu tố đóng vai trò then chốt trong các hoạt động, hỗ trợ rất hiệu quả
cho con người trong quá trình ra quyết định. Bài toán với yêu cầu đặt ra là làm sao
khai thác được những thông tin có ích từ kho dữ liệu khổng lồ này đã dẫn đến một
nhu cầu cấp thiết là cần phải có các kỹ thuật và công cụ để chuyển đổi lượng dữ liệu
to lớn này thành những tri thức có ích. Khai thác dữ liệu là kỹ thuật khám phá các
tri thức mới và phát hiện các thông tin tiềm ẩn có ích từ các cơ sở dữ liệu lớn. Đây
là hướng tiếp cận có nhiều ý nghĩa, là lĩnh vực thời sự nhận được sự quan tâm của
các nhà khoa học trong và ngoài nước. Từ đó, kỹ thuật khai thác dữ liệu không
ngừng phát triển và đã có nhiều kết quả đáng khích lệ, đặc biệt là trong các lĩnh vực
hoạt động sản xuất kinh doanh, y học, ….

Các kỹ thuật phát hiện tri thức và khai thác dữ liệu được thực hiện qua nhiều
giai đoạn thường được sử dụng như kỹ thuật phân lớp, phân cụm, tổng hợp, tìm luật
kết hợp, … Một trong những hướng tiếp cận hiệu quả nhận được nhiều sự quan tâm
từ các nhà nghiên cứu là khai thác luật kết hợp (association rules), là dạng luật biểu
diễn tri thức khá đơn giản nhưng kết quả thu được lại có nhiều ý nghĩa trong việc
phát hiện các luật tiềm ẩn trong cơ sở dữ liệu. Thông tin mà dạng luật này đem lại
rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định.
Bài toán xác định luật kết hợp lần đầu tiên được Agrawal. R giới thiệu và sau
đó được giải quyết trên cơ sở thuật toán Apriori [2]. Phần lớn các thuật toán phát
hiện luật kết hợp chia quá trình giải bài toán này thành hai giai đoạn: giai đoạn đầu
tiên là xác định các tập phổ biến, là các tập phần tử mà số lần xuất hiện của chúng
trong cơ sở dữ liệu đang khảo sát không nhỏ hơn một ngưỡng nào đó do người dùng
quy định [2]. Sau đó, từ các tập phổ biến thu được ở giai đoạn này, thuật toán sẽ
chuyển sang giai đoạn kế tiếp để sinh luật kết hợp. Trong hai giai đoạn trên, giai
9


10

đoạn 1 được xác định là khó khăn, phức tạp và tốn nhiều chi phí và được quan tâm
khá nhiều từ các nhà nghiên cứu. Thuật toán xác định tập phổ biến có độ phức tạp
tính toán cỡ hàm mũ. Mặt khác, cơ sở dữ liệu khảo sát thì ngày càng gia tăng về
kích thước. Vì thế, đã có nhiều thuật toán được đề xuất nhằm cải thiện hiệu quả tính
toán trong quá trình khai thác tập phổ biến và đã có được nhiều kết quả khả quan.
Trong số các thuật toán này, có thể kể đến 3 lớp bài toán được sử dụng nhiều nhất
mà đại diện là các thuật toán như Apriori, Eclat và FP-Growth.
Thuật toán Apriori được xây dựng với tư tưởng đơn giản là sẽ đi tìm các tập
phổ biến chỉ chứa một phần tử trước tiên, sau đó sẽ sinh các ứng viên là các tập có
hai phần tử để từ đó xác định các tập phổ biến có hai phần tử. Quá trình này được
lặp đến khi không còn ứng viên sinh ra. Nhược điểm của phương pháp này là quá

trình duyệt cơ sở dữ liệu sẽ thực hiện nhiều lần và phát sinh nhiều chi phí cho việc
sinh và loại bỏ các ứng viên.
Thuật toán Eclat được nhóm nghiên cứu Zaki đề xuất vào năm 1997. Trong
thuật toán này, các tác giả đã đưa ra khái niệm lớp tương đương để giảm các tập
ứng viên. Ngoài ra, để hạn chế số lần quét cơ sở dữ liệu, tác giả sử dụng định dạng
dữ liệu theo chiều dọc và dựa vào phần giao tập định danh của các giao dịch
(Transactions Identifier Set - TidSet) để tính nhanh tập phổ biến. Vào năm 2003,
cũng chính nhóm Zaki đưa ra cải tiến với kỹ thuật sử dụng Diffset (Different Set)
nhằm nâng cao hiệu quả tính toán.
Thuật toán FP-Growth được Han và các cộng sự đề xuất vào năm 2000 sử
dụng cấu trúc FP-Tree (Frequent Pattern) để nén cơ sở dữ liệu và từ đó xác định tập
phổ biến. Ưu điểm của thuật toán là không sinh ứng viên và chỉ quét cơ sở dữ liệu
hai lần. Thuật toán này tiếp tục được cải tiến với tên gọi là FP-Growth* vào năm
2005 bởi các tác giả Grahne và Zhu.
Ngoài các lớp thuật toán trên, kể từ năm 2007 đã có một số nghiên cứu đề xuất
sử dụng cấu trúc bit vector để nén tập dữ liệu khi khai thác tập phổ biến như thuật
toán BitTableFI, Index-BitTableFI. Đến năm 2011, thuật toán dựa trên cấu trúc
vector bit động (DBV – Dynamic Bit Vector) đã được nghiên cứu để giảm không
gian lưu trữ và cải thiện thời gian tính toán trong khai thác tập phổ biến.

10


11

Tuy nhiên, cơ sở dữ liệu luôn có xu hướng tăng rất nhanh cả về số chiều (tập
mục dữ liệu) và kích thước (số giao tác). Khai thác trên CSDL này theo tiếp cận của
các thuật toán tuần tự đã trở nên bế tắc vì không chứng tỏ được khả năng mở rộng,
cũng như hiệu suất về mặt thời gian. Lý do chính nằm bên trong vấn đề này là khả
năng xử lý, kích thước lưu trữ và bộ nhớ có hạn của một máy tính đơn. Do đó, thuật

toán song song và phân tán đã được nhiều nhà nghiên cứu quan tâm phát triển để
thực hiện tính toán quy mô lớn nhằm khai thác tập phổ biến trên hệ thống có nhiều
bộ xử lý. Năm 1996, nhóm nghiên cứu của Agrawal dựa trên nguyên lý Apriori đã
đề xuất ba thuật toán song song là thuật toán phân phối độ hỗ trợ (Count
Distribution), thuật toán phân phối dữ liệu (Data Distribution) và thuật toán phân
phối ứng viên (Candidate Distribution). Zaki và đồng sự cũng giới thiệu thuật toán
khai thác song song dựa trên cấu trúc IT-Tree vào năm 1997. Đến đầu những năm
2000, có nhiều nhóm nghiên cứu như nhóm Yi Wang vào năm 2001, nhóm
Moonesinghe vào năm 2004 cũng đề xuất một số thuật toán khai thác song song dựa
trên thuật toán FP-Growth tuần tự. Năm 2013, thuật toán song song theo nguyên lý
Apriori dựa trên nền tảng Hadoop MapReduce đã được đề xuất nhằm tận dụng sức
mạnh tính toán song song của mô hình cụm máy tính.
Mặc dù các thuật toán song song và phân tán theo phương pháp truyền thống
đã cải thiện được hiệu suất trong khai thác dữ liệu nhưng phải đối mặt với một số
vấn đề khác cần giải quyết như: chi phí trong phân hoạch dữ liệu đầu vào, cân bằng
tải, chi phí truyền thông và đồng bộ để hợp nhất các thông tin cục bộ thành thông
tin toàn cục. Trong thời gian gần đây, kiến trúc phần cứng đã được nghiên cứu ứng
dụng để tăng tốc độ thời gian xử lý của các thuật toán này. Một số kiến trúc phần
cứng điển hình như kiến trúc FPGA ( Field Programmable Gate Array), Mảng tâm
thu (Systolic Array), GPU (Graphics Processing Unit).
Thách thức chung khi khai thác song song tập phổ biến là làm thế nào có thể
phân chia dữ liệu giữa các máy tính sao cho các máy tính này có thể thực hiện được
quá trình khai thác dữ liệu một cách độc lập mà không cần thiết phải chia sẻ thông
tin và kết quả. Để giải quyết vấn đề này, tác giả bài báo [9] đã đề xuất một tiếp cận
mới “Khai thác song song tập phổ biến sử dụng mảng tâm thu”.

11


12


2. Mục tiêu
Từ những vấn đề nêu trên, mục tiêu đặt ra của luận văn là:
− Tìm hiểu và nghiên cứu thuật toán khai thác song song tập phổ biến sao cho quá
trình khai thác dữ liệu được thực hiện một cách độc lập giữa các bộ xử lý và hạn
chế việc chia sẻ thông tin và kết quả.
− Nghiên cứu và cải tiến thuật toán để góp phần nâng cao hiệu quả tính toán trong
quá trình khai thác dữ liệu.
− Cài đặt chương trình thử nghiệm để có cơ sở đánh giá kết quả nghiên cứu.

3. Bố cục luận văn:
Luận văn được trình bày trong bốn chương, phần mở đầu, phần kết luận và tài
liệu tham khảo với cấu trúc như sau:
Chương 1: Tập phổ biến
Chương này sẽ đề cập đến một số định nghĩa và tính chất của tập phổ biến. Ngoài
ra, trong chương cũng trình bày một số thuật toán cơ bản khi khai thác dữ liệu theo
phương pháp tuần tự.
Chương 2: Một số tiếp cận trong khai thác song song tập phổ biến.
Trong chương này, luận văn sẽ trình bày một số phương pháp và thuật toán khai
thác song song tập phổ biến điển hình.
Chương 3: Khai thác song song tập phổ biến dựa trên mảng tâm thu và vector bit
động.
Trong chương này, luận văn sẽ trình bày các nghiên cứu về sử dụng cấu trúc
vector bit động trong khai thác dữ liệu và thuật toán khai thác song song tập phổ
biến sử dụng kiến trúc mảng tâm thu. Từ đó, đề xuất một thuật toán kết hợp cấu trúc
vector bit động trong khai thác tập phổ biến với kiến trúc mảng tâm thu để nâng cao
hiệu quả khai thác dữ liệu.
Chương 4: Kết quả thực nghiệm và đánh giá
Chương này sẽ trình bày kết quả thực nghiệm và một số nhận xét đánh giá về vấn
đề đã được nghiên cứu.


12


13

Chương 1. TẬP PHỔ BIẾN
1.1. Tập phổ biến
1.1.1. Định nghĩa
Định nghĩa độ phổ biến:
Cho CSDL bao gồm:
Tập các danh mục I, tập các giao dịch D và tập danh mục X  I
Độ phổ biến của X trong D - ký hiệu là sup(X) - được định nghĩa là số giao dịch
mà X xuất hiện trong D.
Ví dụ:
Cho một CSDL mẫu với số lượng giao dịch là 6
Tập danh mục {A, C, D, T, W}
Bảng 1.1. Cơ sở dữ liệu mẫu
Mã giao dịch

Nội dung giao dịch

1

A, C, T, W

2

C, D, W


3

A, C, T, W

4

A, C, D, W

5

A, C, D, T, W

6

C, D, T

Với CSDL mẫu trong bảng 1.1, ta có:
Tập danh mục I = {A, C, D, T, W} và tập giao dịch D gồm có 6 giao dịch:
{ACTW, CDW, ACTW, ACDW, ACDTW, CDT}
Độ phổ biến của tập danh mục X1 = {A} là số giao dịch trong D có chứa {A}, do đó
sup(X1) = 4
Tương tự, X2 = {A, T} => độ phổ biến của X2 là sup(X2) = 3
Định nghĩa tập phổ biến:

13


14

Tập X  I được gọi là tập phổ biến nếu sup(X)  minSup, với minSup là giá trị do

người dùng chỉ định.
Thí dụ:
Cũng với CSDL mẫu trong bảng 1.1, với minSup = 3 (50%) thì tập X2 = {A, T} là
tập phổ biến vì có sup(X2) = 3  minSup. Tương tự, với X3 = {A, C, T} thì sup(X3)
= 3  minSup và X3 cũng là tập phổ biến. Ngược lại, với X4 = {C, D, T} thì sup(X4)
= 2 < minSup, do đó X4 không phải là tập phổ biến.
1.1.2. Các tính chất của tập phổ biến
Tính chất 1:
Độ phổ biến của tập con lớn hơn tập cha.
Cho hai tập phổ biến X, Y với X  Y thì sup(X)  sup(Y)
Tính chất 2 :
Mọi tập con của một tập phổ biến đều là tập phổ biến.
X là tập phổ biến và Y  X thì sup(Y)  sup(X)  minSup, vì vậy Y cũng là tập phổ
biến.
Tính chất 3 :
Mọi tập cha của một tập không phổ biến thì cũng không phổ biến.
X là tập không phổ biến và Y  X thì sup(Y)  sup(X) < minSup, vì vậy Y cũng
không phải là tập phổ biến.
1.1.3. Cách biểu diễn dữ liệu
Trong các cơ sở dữ liệu quan hệ, thông thường dữ liệu sẽ được lưu trữ theo
chiều ngang. Tức là các bảng dữ liệu hai chiều sẽ gồm N dòng tương ứng với các
giao dịch, và M cột tương ứng với các danh mục. Việc bố trí theo chiều ngang giúp
cho việc xác định các danh mục thuộc về một giao dịch đơn giản nhanh chóng. Tuy
nhiên khi cần xác định một danh mục cụ thể thuộc vào những giao dịch nào thì cách
bố trí theo chiều ngang lại gây ra khó khăn, khi đó ta phải duyệt tất cả các giao dịch
có trong CSDL và ghi nhận những giao dịch có chứa danh mục cụ thể đó.

14



15

Thí dụ :
Trong CSDL mẫu ở bảng 1.1, muốn biết danh mục A xuất hiện trong những
giao dịch nào thì ta phải duyệt hết tất cả các danh mục xem giao dịch nào chứa A thì
liệt kê ra, kết quả các giao dịch chứa A là tập {1, 3, 4 , 5}
Có thể nhận thấy với các CSDL lớn thì việc xác định những giao dịch có
chứa một danh mục là rất tốn kém. Trong lúc đó việc xác định những giao dịch có
chứa một danh mục cụ thể lại là công việc thường xuyên để tính độ phổ biến của
một tập danh mục. Để tăng tốc độ khai thác tìm tập phổ biến, chúng ta có thể sử
dụng cách bố trí dữ liệu theo chiều dọc. Nghĩa là bảng dữ liệu có sự đảo chiều, các
dòng biến thành các cột và ngược lại :
Thí dụ : CSDL mẫu trong bảng 1.1 được biểu diễn theo chiều dọc như sau :
Bảng 1.2. Minh họa dữ liệu định dạng theo chiều dọc
Mã danh mục

Mã các giao dịch

C

1

2

3

4

5


W

1

2

3

4

5

A

1

3

4

5

D

2

4

5


6

T

1

3

5

6

6

Lúc này việc xác định xem danh mục A có độ phổ biến bao nhiêu trong
CSDL bố trí theo chiều dọc trở nên đơn giản bằng cách xác định dòng trong bảng
tương ứng với mã danh mục A, kết quả là tập giao dịch {1, 3, 4, 5} và sup(A) = 4
Các thuật toán khai thác tập phổ biến hiện nay sử dụng tập cơ sở dữ liệu theo
chiều ngang hoặc chiều dọc. Cơ sở dữ liệu theo chiều ngang tương tự như tập dữ
liệu giao dịch trong thực tế với mỗi dòng trong cơ sở dữ liệu là một giao dịch với
một hoặc nhiều item. Trong khi đó, với cơ sở dữ liệu theo chiều dọc thì mỗi dòng
bao gồm một item và tất cả định danh các giao dịch (gọi là transaction ID) có chứa
item đó. Tuy nhiên cách bố trí dữ liệu theo chiều dọc sẽ gây khó khăn trong việc

15


16

quản lý bộ nhớ vì bảng dữ liệu gia tăng kích thước theo chiều ngang thay vì theo

chiều dọc.
Ngoài ra, danh sách giao dịch cũng có thể biểu diễn bằng cách nén trong ma
trận bit. Theo cách này, nếu mục dữ liệu I xuất hiện trong giao dịch t thì bit thứ i
của t trong ma trận bit sẽ mang giá trị 1, ngược lại nó sẽ có giá trị 0. Với dữ liệu
được nén theo phương pháp này, thì ma trận bit được sử dụng theo chiều dọc. Cách
định dạng này có thể giảm không gian bộ nhớ hơn định dạng dữ liệu ngang và định
dạng dữ liệu dọc. Tuy nhiên, phương pháp này chỉ đạt hiệu quả tốt nhất trên ma
trận đặc (có nhiều bit 1).
Thí dụ : CSDL mẫu trong bảng 1.1 được nén trong ma trận bit như sau:
Bảng 1.3. Minh họa dữ liệu biểu diễn bằng ma trận bit
Mã giao dịch

A

C

D

T

W

1

1

1

0


1

1

2

0

1

1

0

1

3

1

1

0

1

1

4


1

1

1

0

1

5

1

1

1

1

1

6

0

1

1


1

0

1.2. Một số thuật toán khai thác tập phổ biến
1.2.1. Phương pháp sinh ứng viên – thuật toán Apriori:
Phương pháp sinh ứng viên để tìm tập phổ biến được Agrawal [2] đề xuất từ
năm 1993 với thuật toán Apriori. Ý tưởng của thuật toán Apriori dựa trên kết luận:
nếu một tập danh mục là phổ biến thì tất cả tập con của nó cũng phải phổ biến (tính
chất 2 – tập phổ biến). Do vậy không thể có trường hợp một tập phổ biến có tập con
là không phổ biến hay nói cách khác tập phổ biến nhiều danh mục hơn chỉ có thể
được tạo ra từ các tập phổ biến ít danh mục hơn. Nguyên lý hoạt động cơ bản của
thuật toán Apriori như sau:
− Bắt đầu từ các tập phổ biến chỉ có một danh mục
16


17

- Dùng tập phổ biến kích thước k-1 phần tử để tạo các tập ứng cử k phần tử
- Duyệt cơ sở dữ liệu và đối sánh mẫu để đếm số lần xuất hiện của các tập ứng
viên trong các giao tác, nếu số lần xuất hiện của tập ứng viên lớn hơn hoặc
bằng minsup thì là tập phổ biến, ngược lại không phải tập phổ biến.
− Quá trình lặp lại cho đến khi không còn tập phổ biến nào được tạo ra
Thuật toán Apriori
Input: cơ sở dữ liệu D, minsup
Output: L
1) L1 ={tập hợp 1 danh mục};
2) For (k = 2; Lk-1 ≠ ; k++) do begin
3)


Ck = apriori-gen (Lk-1); // Tạo ứng viên mới.

4)

Forall giao tác t  D do begin //duyệt CSDL

5)

Ct = subset(Ck, t); //các tập danh mục ứng viên có trong giao tác t

6)

Forall ứng viên c  Ct do

7)

c. count ++;

8)

End

9)

Lk = {c  Ck | c.count ≥ minsup}

10) End
11) Answer = k Lk; // Trả về tập hợp của các tập phổ biến
Hình 1.1. Thuật toán Apriori

Diễn giải thuật toán :
- Bước đầu tiên của thuật toán đơn giản chỉ tính các danh mục xuất hiện để xác
định tập hợp của các tập phổ biến 1 danh mục.
- Lặp bước k :
+ Tập hợp Lk-1 được sử dụng để tạo nên tập ứng viên Ck : sử dụng hàm
apriori-gen được miêu tả là hàm lấy Lk-1 (tập hợp của các tập phổ biến k-1
danh mục ) là đầu vào và trả về Ck là tập hợp của tất cả các tập chứa k danh
mục phát sinh từ tập hợp Lk-1 bằng cách hợp các tập k-1 danh mục trong tập
hợp Lk-1. Chú ý một ứng viên thuộc Ck thì tất cả các tập con của ứng viên đó
phải có mặt trong Lk-1 (theo tính chất 2 của tập phổ biến)
17


18

+ Bước kế tiếp, duyệt CSDL để tính độ phổ biến của các ứng viên trong tập
hợp Ck. Từ đó, tính được tập hợp Lk.
+ Nếu Lk =  thì dừng lại.
- Hợp của các Lk chính là các tập phổ biến cần tìm.
Thí dụ minh họa : Xét CSDL mẫu trong bảng 1.1 với minSup =50% = 50% * 6 = 3
Bước 1 : Duyệt CSDL để tìm ra L1 là các tập phổ biến có 1 danh mục có độ phổ
biến  3 :
Bảng 1.4. Các tập phổ biến có 1 danh mục
Database (D)

L1

ID
1


Nội dung
A, C, T, W

2
3
4
5

C, D, W
A, C, T, W
A, C, D, W
A, C, D, T, W

6

C, D, T

Danh
mục

Độ phổ
biến

A
C

4
6

D

T
W

4
4
5

Bước 2 : tính tập ứng viên C2 dựa trên L1 bằng phép hợp. Sau đó duyệt CSDL tính
độ phổ biến của các ứng viên thuộc C2, loại bỏ những ứng viên có độ phổ biến bé
hơn minSup, để tạo thành L2 là các tập phổ biến có 2 danh mục.
Bảng 1.5. Các tập phổ biến có 2 danh mục
C2
Danh
Độ phổ
mục
biến
AC
4
AD
2
AT
3
AW
4
CD
4
CT
4
CW
5

DT
2
DW
3
TW
3

L2
Danh
mục
AC
AT
AW
CD
CT
CW
DW
TW

Độ phổ
biến
4
3
4
4
4
5
3
3
18



19

Bước 3 : Tương tự bước 2 tạo C3 và L3 từ L2 . Chú ý khi tạo C3 thì loại bỏ những
ứng viên có tập con 2 danh mục không nằm trong L2. Từ L2 để tạo C3 có thể bằng
cách từ tập hợp tất cả danh mục có trong L2, rồi lần lượt kiểm tra các tập danh mục
3 thuộc tính trong tập hợp đó theo chú ý ở dòng trên.
Bảng 1.6. Các tập phổ biến có 3 danh mục
C3

L3

Danh
mục

Độ phổ
biến

ACT

3

Danh
mục
ACT

Độ phổ
biến
3


ACW
ATW

4
3

ACW
ATW

4
3

CDW
CTW

3
3

CDW
CTW

3
3

Bước 4 : Tạo C4 và L4 từ L3
Bảng 1.7. Các tập phổ biến có 4 danh mục
L4

C4

Danh
mục

Độ phổ
biến

Danh
mục

Độ phổ
biến

ACTW

3

ACTW

3

Bước 5 : Tạo C5 và L5 từ L4. Ta có C5 = .
Như vậy thuật toán dừng lại ở bước 5 vì L5 = 
Kết quả : với minSup =50% thì :
Tập hợp các tập phổ biến = L1  L2  L3  L4
= {A, C, D, T, W, AC, AT, AW, CD, CT, CW, DW, TW, ACT,
ACW, ATW, CDW, CTW, ACTW}
Hạn chế của thuật toán Apriori:
Để xác định độ phổ biến của các tập ứng viên, thuật toán Apriori phải quét
lại toàn bộ giao dịch trong CSDL, do đó sẽ tiêu tốn rất nhiều thời gian khi phải quét
CSDL nhiều lần để kiểm tra một lượng lớn các ứng viên, đặc biệt khi số danh mục


19


20

lớn. Những hạn chế này sẽ được khắc phục với các phương pháp không sinh ứng
viên sẽ tìm hiểu ở phần tiếp theo.
1.2.2. Thuật toán Eclat
Thuật toán Eclat được đề xuất bởi Zaki và các đồng sự, tiếp cận của thuật toán
này dựa trên cấu trúc IT-Tree (Itemset Tidset-tree) và các lớp tương đương. Dữ liệu
khai thác được định dạng theo chiều dọc, sử dụng chiến lược tìm kiếm theo chiều
sâu để khai thác tập phổ biến.
Ý tưởng thuật toán
- Quét dữ liệu lần đầu để xây dựng tid của từng item đơn.
- Bắt đầu với tập phổ biến 1-phần tử, phần tử phổ biến có (k+1) phần tử
được hình thành từ tập k phần tử. Thực hiện phép giao các tid của tập phổ
biến có k phần tử để tính toán các tid của tập phổ biến (k+1) phần tử.
- Tiến trình này lặp lại cho đến khi không còn tập phổ biến hoặc tập ứng
viên nào.
Đánh giá:
Ưu điểm chính của thuật toán Eclat là sử dụng cách tổ chức dữ liệu theo chiều
dọc, CSDL được bố trí thành một danh sách các item. Mỗi item xác định một danh
sách các định danh của giao dịch có nó, ký hiệu tid-List.
- Nếu tid-List đã được sắp theo thứ tự tăng dần thì độ hỗ trợ của k-itemset ứng
viên có thể được tính toán bởi phép giao các tid-List của hai (k-1)-subset bất
kỳ. Với cách tổ chức này, thuật toán không cần phải duy trì cấu trúc dữ liệu
phức tạp, không như cây băm và cũng không phải sinh ra tất cả các k-subset
của các giao dịch hoặc thực hiện các thao tác tìm kiếm trên cây băm.


- Các tid-List chứa tất cả các thông tin liên quan về một tập phần tử. Vì vậy,
khi tính độ hỗ trợ cho một tập phần tử không cần phải quét toàn bộ CSDL. Vì
tất cả các thông tin về một lớp tương đương được nhóm cùng nhau nên có thể
sinh ra các tập phổ biến trước khi chuyển sang lớp tiếp theo.
Thuật toán dựa vào phần giao giữa các Tidset để tính nhanh độ phổ biến nên
chỉ cần quét CSDL một lần, tuy nhiên lại tốn không gian để lưu trữ tid-List. Khi số
tập phổ biến lớn thì hiệu suất thời gian khai thác không cao. Để khắc phục hạn chế
này, chính nhóm tác giả Zaki trong công trình nghiên cứu đã đề xuất sử dụng
20


21

Diffset (Different set – hiệu của Tidset X và Tidset Y với X, Y là 2 tập phổ biến) để
giảm không gian lưu trữ.
1.2.3.

Thuật toán FP-Growth

Thuật toán Apriori được coi là thuật toán nền tảng về khai thác tập phổ biến
bằng cách sử dụng kỹ thuật tỉa để rút gọn kích thước của các tập ứng viên. Tuy
nhiên, thuật toán gặp phải hai chi phí lớn: sinh ra số lượng khổng lồ các tập ứng
viên, phải duyệt cơ sở dữ liệu nhiều lần.
Để khắc phục những chi phí lớn của thuật toán Apriori, nhóm tác giả Jiawei
Han, Jian Pei và Yiwen Yin đã đề xuất thuật toán FP-Growth [3] vào năm 2000.
Thuật toán này sử dụng một cấu trúc cây FP-Tree để lưu trữ thông tin tập phổ biến
của dữ liệu gốc ở một dạng nén trong bộ nhớ và dùng phương pháp duyệt cây theo
chiều rộng để tìm tập phổ biến.
Ý tưởng thuật toán
- Xây dựng cây FP-Tree để nén dữ liệu. Những nút trong cây được gán

nhãn bằng tên các item và được sắp xếp theo tần suất xuất hiện của các
item.
- Thiết lập cơ sở điều kiện cho mỗi phần tử phổ biến (mỗi nút trên cây FP).
Thiết lập cây FP điều kiện (Conditional FP tree) từ cơ sở điều kiện đó.
- Khai thác đệ qui cây FP điều kiện để xác định tập phổ biến.
Đánh giá:
Điểm nổi bật của thuật toán này là chỉ quét cơ sở dữ liệu hai lần, và không cần
phát sinh tập ứng viên. Chính điều này làm cho FP-Growth nhanh hơn Apriori.
Trong nghiên cứu của mình, Han đã chứng minh rằng phương pháp của ông nhanh
hơn so với các phương pháp tuần tự khác trong việc khai thác tập phổ biến như các
thuật toán Apriori, Eclat,…
1.2.4. Thuật toán BitTableFI
Thuật toán BitTableFI [6] sử dụng kỹ thuật nén tập dữ liệu dựa trên cấu trúc
BitTable. Theo cách nén này, dữ liệu được bố trí dưới dạng dãy các bit, mỗi một tập
mục sẽ chiếm |T| bit. Vì vậy, mỗi tập mục sẽ chiếm |T|/8 + 1 byte. Khi tạo ra một
tập mục mới XY từ hai tập mục X và Y, Bitlist của XY sẽ được tính dựa trên Bitlist
của các tập mục có trong XY bằng cách lấy phần giao giữa các byte có trong các
21


22

Bitlist. Do lực lượng của hai vectơ bit là bằng nhau nên kết quả sẽ cho ra một vectơ
bit (Bitlist) có chiều dài là |T|/8 + 1 byte. Thuật toán khai thác tập phổ biến theo cấu
trúc này được các tác giả tiếp cận dựa vào nguyên lý Apriori [1]. Điểm khác biệt
chính là cách tính độ phổ biến: thuật toán Apriori tính độ phổ biến bằng cách quét
lại CSDL, còn BitTableFI chỉ cần tính phần giao trên các vectơ bit. Độ phổ biến của
itemset kết quả có thể được tính nhanh dựa vào số bit 1 có trong vectơ bit. Thuật
toán Index-BitTableFI được nhóm tác giả Wei-Song đề xuất để cải tiến BitTableFI.
Các tác giả dựa vào khái niệm subsume để gộp các tập mục. Cách gộp như sau: đầu

tiên, sắp xếp các tập mục tăng theo độ phổ biến, xét mỗi tập mục i với các tập mục
đứng sau nó (theo thứ tự đã sắp xếp), nếu Bitlist i là con của Bitlist j thì j thuộc về
tập subsume của i. Việc tạo ra subsume và khai thác tập phổ biến dựa trên subsume
cải tiến đáng kể thời gian khai thác tập phổ biến.

22


23

Chương 2. MỘT SỐ TIẾP CẬN TRONG KHAI THÁC
SONG SONG TẬP PHỔ BIẾN
2.1. Nguyên lý thiết kế thuật toán song song
Khi thiết kế thuật toán, nếu có một số thao tác có thể thực hiện đồng thời thì
những thuật toán đó được gọi là thuật toán song song. Nói một cách tổng quát, thuật
toán song song là một tập các tiến trình hoặc các tác vụ có thể thực hiện đồng thời
và có thể trao đổi dữ liệu với nhau để kết hợp cùng giải quyết bài toán đặt ra.
Có năm nguyên lý chính trong việc thiết kế thuật toán song song:
+ Nguyên lý lập lịch: giảm thiểu các bộ xử lý sử dụng trong thuật toán sao
cho thời gian tính toán không tăng khi xét theo khía cạnh độ phức tạp.
+ Nguyên lý hình ống: được áp dụng khi bài toán xuất hiện một dãy các thao
tác T1, T2, …, Tn trong đó, Ti+1 thực hiện sau khi Ti kết thúc.
+ Nguyên lý chia để trị: chia bài toán thành từng phần nhỏ hơn, tương đối
độc lập với nhau và giải quyết chúng đồng thời.
+ Nguyên lý điều khiển tương tranh: sử dụng nếu hai tiến trình cùng muốn
truy xuất vào cùng một nguồn dữ liệu thì khả năng tranh chấp dữ liệu có thể
xảy ra.

2.2. Một số thuật toán khai thác song song tập phổ biến
Nhiều nhà nghiên cứu kỳ vọng phương pháp khai thác song song tập phổ biến

sẽ là một giải pháp để khắc phục những bế tắc của các thuật toán tuần tự, cung cấp
khả năng dễ mở rộng để xử lý tập dữ liệu lớn và cải thiện hiệu suất về mặt thời gian.
Để thực hiện đạt hiệu quả tốt trên hệ thống có nhiều bộ xử lý là điều không
đơn giản. Thách thức chính của các thuật toán song song bao gồm chi phí tối thiểu
để truyền thông và đồng bộ dữ liệu, cân bằng tải, tìm kiếm phương pháp định dạng
và phân hoạch dữ liệu hiệu quả, chi phí tối thiểu I/O (điều này đặc biệt quan trọng
trong khai thác tập phổ biến).
Thiết kế thuật toán song song thường có ba thành phần chính [7]: Kiến trúc
phần cứng, mô hình song song và chiến lược cân bằng tải.

23


24

2.2.1. Hệ thống bộ nhớ phân tán và bộ nhớ chia sẻ
Hai tiếp cận thường thấy để sử dụng nhiều bộ xử lý là: Bộ nhớ phân tán
(Distributed memory) và bộ nhớ chia sẻ (Shared memory).
Kiến trúc bộ nhớ chia sẻ có đặc trưng là mỗi bộ xử lý có thể truy cập trực tiếp
tới tất cả bộ nhớ của hệ thống (các bộ xử lý có vùng nhớ chung). Lập trình song
song rất dễ thực hiện trên kiến trúc này.
Global Data Mining

Local

Local



Local


Database

Hình 2.1. Kiến trúc bộ nhớ chia sẻ trong khai thác dữ liệu [13]
Một tiếp cận khác là xây dựng hệ thống có nhiều bộ xử lý, trong đó mỗi bộ xử
lý có vùng nhớ riêng. Trong kiến trúc bộ nhớ phân tán, mỗi bộ xử lý chỉ truy cập
trực tiếp đến bộ nhớ của riêng nó. Một bộ xử lý nào đó muốn truy cập bộ nhớ cục
bộ của bộ xử lý khác, hệ thống phải dùng cơ chế truyền thông điệp để gửi bản sao
dữ liệu từ bộ xử lý này đến bộ xử lý khác.
Global Data Mining

Local
DM

Local
DM

Local
DB

Local
DB



Local
DM

Local
DB


Hình 2.2. Kiến trúc bộ nhớ phân tán trong khai thác dữ liệu [13]

24


25

Mặc dù kiến trúc bộ nhớ chia sẻ rất dễ lập trình nhưng gặp hạn chế về mặt
băng thông và khả năng mở rộng hệ thống. Kiến trúc bộ nhớ phân tán thông qua cơ
chế truyền thông điệp khắc phục được vấn đề này nhờ mô hình kết nối mạng, nhưng
khó khăn hơn trong lập trình.
Kiến trúc thứ ba, rất phổ biến, là mô hình kết hợp kiến trúc bộ nhớ phân tán và
bộ nhớ chia sẻ. Chứa trong mô hình này là hệ thống bộ nhớ chia sẻ - bộ nhớ phân
tán dựa trên nền tảng phần cứng hoặc phần mềm. Những hệ thống theo kiến trúc
này thường phân tán bộ nhớ vật lý giữa các nút nhưng cung cấp không gian địa chỉ
của bộ nhớ toàn cục trên mỗi bộ xử lý.
2.2.2. Mô hình song song dữ liệu và song song tác vụ
Song song dữ liệu (Data Parallelism) và song song tác vụ (Task Parallelism) là
hai mô hình được sử dụng trong các thuật toán song song. Trong khai thác tập phổ
biến, song song dữ liệu tương ứng trong trường hợp này là CSDL ban đầu sẽ được
phân hoạch giữa các bộ xử lý. Mỗi bộ xử lý làm việc trên dữ liệu được phân hoạch
cục bộ của nó nhưng thực thi thao tác tính toán giống nhau để đếm độ hỗ trợ cho tập
mục ứng viên toàn cục. Đối với mô hình song song tác tác vụ, mỗi bộ xử lý sẽ thực
hiện thao tác tính toán khác nhau một cách độc lập, chẳng hạn như đếm một số tập
rời nhau của tập ứng viên nhưng cần phải truy cập toàn bộ CSDL.
Trong kiến trúc bộ nhớ chia sẻ, mỗi bộ xử lý có thể truy cập toàn bộ CSDL,
nhưng trong kiến trúc bộ nhớ phân tán quá trình truy cập CSDL cần phải được sao
chép dữ liệu cục bộ và truyền thông giữa các bộ xử lý với nhau. Do đó ý tưởng kết
hợp cả hai mô hình song song dữ liệu và song song tác vụ trong thiết kế thuật toán

song song là tiếp cận đầy tiềm năng, hứa hẹn mang lại nhiều đột phá trong khai thác
song song tập phổ biến.
2.2.3. Chiến lược cân bằng tải động và tĩnh.
Trong chiến lược cân bằng tải tĩnh (Static Load Balancing), trước tiên phân
hoạch công việc giữa các bộ xử lý bằng cách sử dụng hàm đánh giá dựa trên kinh
nghiệm (heuristic), sau đó không có sự điều chỉnh dữ liệu hoặc tính toán tiếp theo
nào để khắc phục khi mất cân bằng tải xảy ra. Cân bằng tải động (Dynamic Load
Balancing ) giải quyết vấn đề này bằng cách phân phối lại công việc theo cách lấy
một phần công việc nặng của những bộ xử lý đã được phân hoạch, giao lại cho
25


×