ÁP DỤNG ROARING BITMAP VÀO THUẬT TOÁN TKS

Một phần của tài liệu Khai thác k mẫu tuần tự phổ biến dựa trên roaring bitmap (Trang 66 - 70)

Để áp dụng Roaring bitmap vào thuật toán TKS thay thế cho bit vector tĩnh chúng ta cần thay đổi cấu trúc dữ liệu để lưu bitmap và thay thế các phương thức sử dụng cho bit vector tĩnh bằng các phương thức dùng cho Roaring bitmap trong các thủ tục có liên quan như thủ tục thiết lập bit 1 cho bitmap, thủ tục tạo bitmap mới cho bướcs-extension và i-extension.

Cu trúc dliệu lưu bitmap:

Khai báo cấu trúc dữ liệu để lưu đối tượng bitmap bao gồm:  Khai báo bitmap sử dụng Roaring bitmap

Để tính độ hỗ trợ hiệu quả hơn, chúng ta cần lưuthêm các thông tin sau:

 Khai báo số nguyên lastSID lưu sid của chuỗi cuối cùng chứa bit 1 được

thêm vào bitmap với giá trị khởi đầu là -1

 Khai báo số nguyên supportlưu độ hỗ trợ của bitmapvới giá trị khởi đầu là 0

Chúng ta lưu sid của chuỗi cuối cùng chứa bit 1 được thêm vào bitmap nhằm

giúp tính độ hỗ trợ của bitmap, bởi vì nếu có nhiều hơn một bit 1 trong cùng 1 chuỗi

(cùng lastSID) thì độ hỗ trợ cũng chỉ tính là 1. Ngoài ra, việc lưu độ hỗ trợ của bitmap giúp chúng ta truy cập nó nhanh hơn và có thể tính tốn nó trong lúc tạo hay cập nhật bitmap.

Thtc thiết lp bit 1 cho bitmap:

Đầu vào: sid, tid tương ứng với bit cần thiết lậpvà danh sách sequenceSize cho

biết vị trí bắt đầu của mỗi chuỗi trong bitmap. Vớitid là vị trí của itemset chứa item

tương ứng với bit cần thiết lập trong chuỗi sid.

Thủ tục này tính tốn vị trí của bit cần thiết lập trong bitmap bằng cách lấy giá trị tương ứng với sid trong sequenceSize cộng với tid và gọi phương thức thiết lập bit 1 củaRoaring bimap tại vị trí này. Sau đó,cập nhậthỗ trợ của bitmap và lưu sid

Thtc to bitmap mới cho bước i-extension:

Đầu vào:

bitmapItem: bitmap của item được thêm vào mẫu bằngi-extension sequenceSize: danh sách chứavị trí bắt đầu của mỗi chuỗi trong bitmap.

Đầura:

newBitmap là kết quảcủa bướci-extension giữathis.bitmap và bitmapItem

Thủ tục này thực hiện vịng lặp qua tất cả các vị trí của bit 1 trên this.bitmap và kiểm tra sự hiện diện của bit 1 trong bitmapItem tại các vị trí này. Nếu cả hai có vị trí bit 1 giống nhau thì newBitmap cũng sẽ được thiết lập bit 1 ở vị trí đó đồng thời cập nhật lại độ hỗ trợ của nó và lưu sid của chuỗi cuối cùng chứa bit 1 vừa được

thêm vào bitmap.Cách làm này có ưu điểm là chỉ cần một vịng lặp, chúng ta có thể tạo ra newBitmap cùng với độ hỗ trợ của nó trong khi dùng phép toán AND thì chúng ta phải duyệt lạinewBitmap để tính độ hỗ trợ của nó.

Thtc to bitmap mới cho bước s-extension:

Đầu vào:

bitmapItem: bitmap của item được thêm vào mẫu bằngs-extension sequenceSize: danh sách chứavị trí bắt đầu của mỗi chuỗi trong bitmap.

lastBitIndex: bit cuối cùng của bitmap

Đầura:

newBitmap là kết quả của bướcs-extension giữathis.bitmap và bitmapItem

Thủ tục này thực hiện bước s-extension ngắn gọn hơn những gì mơ tả trong

hình 3.3 nhằm tăng tốc độ xử lý của thuật tốn. Cách thực hiện này được mơ tả như sau: dùng 2 vòng lặp chothis.bitmap và bitmapItem.Ở vòng lặp thứ nhất,bắt đầu từ vị trí 0,ta tìm vị trí x của bit 1 đầu tiên trong this.bitmap và lấy vị trí bit cuối cùng

của chuỗi chứabit này, giả sử là a1.Ở vòng lặp thứ 2, ta sẽ bắt đầu tìm các bit 1

trong bitmapItem từ vị tríx + 1đếna1. Nếu tìm thấy các bit 1 trong vùng này của bitmapItem, ta sẽ thiết lập các bit 1 ở vị trí tương ứng cho newbitmap. Sau đó, cập nhật độ hỗ trợ cho newBitmap và lưu sid của chuỗi cuối cùng chứa bit 1 vừa được

thêm vào bitmap. Quay về vòng lặp thứ nhất, ta bắt đầu lại q trình này từ vị trí a

và cứ tiếp tục như vậy cho đến khi đến cuối một trong hai bitmap thì dừng.Ưu điểm của cách làm này là không phải biến đổi this.bitmaptrước khi thực hiện phép AND. Tuy sử dụng 2 vịng lặp nhưng khơng duyệt hết tất cả các giá trị mà mỗi vòng lặp chỉ duyệtmột số đoạn khơng trùng lắp với vịng lặp kia. Do đó, giảm được thời gian xử lý.

CHƯƠNG 4

THỰC NGHIỆM – ĐÁNH GIÁ KẾT QUẢ

Để đo tính hiệu quả của các thuật toán TKS và TKS đã được cải tiến, thí nghiệm được thực hiện trên các bộ dữ liệu chuẩn lấy về từ địa chỉ http:// http://www.philippe-fournier-viger.com/spmf/index.php?link=datasets.php. Máy tính: Dell XPS L321X bộ xử lý Core i5-2467M 1.6 GHz và 4 GB bộ nhớ chính, chạy trên hệ điều hành Windows 7 Ultimate 64 bit, ngơn ngữ lập trình Java.

Hình4.1 Giao diện chương trình

Choose an algorithm: chọn thuật tốnTKS gốc hay thuật toán TKS cải tiến

Choose input file: Chọnfile CSDL được chuyển về dạng *.txt

Set output file: Chọnfile lưu kết quả của thuật toán

Choose k: Chọn số mẫu sẽ được trả về trong kết quả của thuật toán

Open output file when the algorithm terminates: Mở file chứa kết quả khi thuật

toán thực hiện xong.

Khi thực hiện xong, thuật tốn sẽ hiển thị các thơng số đo được như số mẫu tìm được, thời gian tiền xử lý, tổng bộ nhớ đã sử dụng, tổng thời gian thực hiện,… ở textbox dưới nútRun algorithm.

Một phần của tài liệu Khai thác k mẫu tuần tự phổ biến dựa trên roaring bitmap (Trang 66 - 70)

Tải bản đầy đủ (PDF)

(76 trang)