1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo màu đề tài nghiên cứu bộ lọc bloom và ứng dụng

47 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 2,05 MB

Nội dung

Các ứng dụng của bộ lọc Bloom Bài toán khớp tiền tố dài nhất... Khớp tiền tố dài nhất sử dụng bộ lọc Bloom• Chia bảng định tuyến thành các bảng nhỏ theo độ dài tiền tố gọi là cá

Trang 1

Nghi ên cứu bộ lọc Bloom và ứng dụng

Giáo viên hướng dẫn:

ĐỒ ÁN TỐT NGHIỆP

Trang 2

Giới thiệu bộ lọc Bloom

• Được Burton H.Bloom đưa ra năm 1970

• Bộ lọc Bloom là một cấu trúc dữ liệu rất hiệu quả về không gian cho việc truy vấn thành viên nhóm, cho phép bỏ qua các trường hợp không cần thiết phải tìm kiếm.

Trang 3

Bài toán khớp tiền tố dài nhất Bài toán phân loại gói tin

Trang 4

1 Lý thuyết về bộ lọc Bloom

Cấu trúc bộ lọc Bloom cơ bản

Cơ chế hoạt động của bộ lọc Bloom Ước lượng sai số

Chương trình demo

Trang 5

Một vectơ Bit

V có kích thước là m, ban đầu mỗi bit đều có giá trị là 0.

2

k hàm băm (h1 hk), hi: U

 [1 m]

3

Tập X gồm n phần tử xi

Cấu trúc bộ lọc Bloom cơ bản

Trang 6

Cơ chế hoạt động của bộ lọc Bloom

• Chèn một phần tử vào bộ lọc: Mỗi phần tử x thuộc tập X

được nạp vào trong bộ lọc Bloom theo phương pháp như sau:

– Tính toán x qua k hàm băm ta có k giá trị: h1(x),…,hk(x)

– K bit có vị trí tương ứng với h1(x),…,hk(x) trong vectơ bit

V sẽ được gán là 1

x

VV

Trang 7

Cơ chế hoạt động của bộ lọc Bloom

• Kiểm tra một phần tử y:

– Nếu V[h1(y)]=1 ,… và V[hk(y)]=1 thì y có thể thuộc X.

– Nếu chỉ một bit V[hi(y)] =0 thì y chắc chắn không thuộc X.

=> Kết quả kiểm tra qua bộ lọc: phần tử đó không thuộc hoặc có khả năng thuộc bộ lọc

Trang 8

Ước lượng sai số

• False Negative : kiểm tra qua bộ lọc là không có nhưng tìm kiếm thực thì lại có.

• False Positive : kiểm tra qua bộ lọc là có nhưng tìm kiếm thực thì không có.

• Bộ lọc Bloom: không bao giờ xảy ra lỗi false negative Chỉ xảy ra lỗi false positive với xác suất rất nhỏ.

Trang 9

Ước lượng sai số - False positive

• Xác suất để một bit được gán là 0 bởi tất cả các hàm băm là:

• Đặt p=e-kn/m, xác suất của một false positive là:

• Giả sử cho trước m và n thì giá trị k tối ưu là:

m

nk e

p

e m

Trang 10

Kết quả sử dụng bộ lọc trong bài toán tìm kiếm

Số

phần tử

Số hàm băm

Độ dài vectơ bit

Số phần

tử so sánh

Số

PT lọc qua

là có

Số PT

BF KT sai

Tỉ lệ đúng

(%)

Tỉ lệ sai - FP(%)

So sánh TG

50000 5 370000 12500 1532 266 97.87 2.13 1/13.7

100000 5 730000 25000 3197 712 97.15 2.95 1/11.9

Trang 11

2 Các ứng dụng của bộ lọc Bloom

Bài toán khớp tiền tố dài nhất

Trang 12

2.1 Bài toán khớp tiền tố dài nhất

Bảng định tuyến trong router

Trang 13

a Bảng định tuyến router

• Chuyển tiếp các gói tin

dựa trên địa chỉ IP đích

trong phần Header của

Trang 14

b Thuật toán khớp tiền tố cổ điển

Trang 15

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

• Chia bảng định tuyến thành các bảng nhỏ theo độ dài tiền tố gọi là các bảng băm Mỗi bảng băm chỉ chứa các tiền tố có cùng độ dài.

• Giả sử địa chỉ IP có W bit Cấu trúc bao gồm:

– W bộ lọc Bloom: B(1),…, B(W)

– W bộ đếm tương ứng với W bộ lọc Bloom: C(1),…, C(W)

Trang 16

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

Prefix Next hop

Trang 17

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

– Địa chỉ IP đầu vào được

kiểm tra song song qua W

bộ lọc Bloom

– Mỗi bộ lọc chỉ đơn giản

đưa ra kết quả là khớp hay

không khớp.

– Vector khớp là tập hợp tất

cả các độ dài tiền tố có

khớp

– Tìm kiếm trong các bảng

băm với thứ tự từ tiền tố

dài nhất đến ngắn nhất.

Trang 18

2.2 Bài toán phân loại gói tin

Khái niệm phân loại gói tin

Trang 19

a Phân loại gói tin

• Phân loại gói tin là một hoạt động của router nhằm

phân loại gói tin dựa trên phần header

• Khi nhận được một gói tin, router sẽ tìm một quy tắc khớp với gói tin để xác định xử lý thích hợp với gói

tin đó.

• Giả sử gói tin đến có header

(5.168.3.0,152.133.171.71,…,TCP.

Trang 21

• Bảng quy tắc tích chéo gồm các quy tắc giả thêm vào, khi đó ta có thuật toán phân loại gói tin đơn giản như sau:

ClassifyPacket(P )

1 for each field i

2 vi ← LPM(P.fi)

3 {match, {Id}} ← HashLookup(‹v1, , vk›)

• Tìm tiền tố khớp dài nhất trên mỗi trường, kết

b Thuật toán tích chéo cổ điển

Trang 22

• Ta xét ví dụ <10101100, 00111011>

• Thực hiện khớp tiền tố dài nhất trên mỗi trường

ta có khoá <101, 00>

• Tìm kiếm khoá ta thấy quy tắc khớp là p2.

b Thuật toán tích chéo cổ điển

Trang 23

c Thuật toán tích chéo đa tập con

• Thuật toán tích chéo cổ điển: lượng quy tắc giả thêm vào có thể là rất lớn, tăng theo lượng hàm mũ.

• Tức là mỗi trường có m tiền tố không trùng nhau thì số quy tắc giả thêm vào tương đương với mnvới n là số trường trong bảng quy tắc.

• Giảm lượng quy tắc giả: chia tập quy tắc ban

Trang 24

• Chia tập quy tắc thành các

tập con.

• Tập G1 sinh thêm 1, tập

G2 sinh p2, tập G3 không

sinh thêm.

• Với mỗi trường ta xây

dựng một bảng LPM xác

định độ dài tiền tố dài nhất

của một tiền tố trong các

tập con.

c Thuật toán tích chéo đa tập con

Trang 25

• ClassifyPacket(P)

• for each field i

• t i ← LPM (P.f i)

• for each subset j

• for each field i

Trang 26

• Tính chất: trong mỗi trường không có tiền tố chồng nhau thì không sinh ra quy tắc tích chéo

• Phương pháp gom nhóm không chồng nhau.

• Đây là cách chia tập quy tắc không sinh thêm quy tắc chéo nào.

d Thuật toán tìm kiếm không gian NLT

Trang 27

• Mỗi trường được xây dựng thành một cây bộ mức xếp chồng và ta tính được số bộ mức xếp chồng (NLT) của một tập quy tắc.

• Trong một NLT thì không có tiền tố chồng nhau nên tập quy tắc sẽ được chia thành các tập con mà mỗi tập con chứa toàn bộ quy tắc thuộc một NLT Gọi là tập quy tắc con NLT

d Thuật toán tìm kiếm không gian NLT

Trang 28

d Thuật toán tìm kiếm không gian NLT

1 B1: Tìm ra các tiền tố khớp dài nhất trên mỗi trường.

2 B2: Thực hiện phép giao của các bản đồ bit NLT tương ứng để tìm các tập NLT có chứa tiền tố của 2 địa chỉ 2 trường.

3 B3: Từ bản đồ bit giao nhau và từ bảng NLT nhận được cặp mức xếp chồng của NLT thực.

4 B4: Kết hợp cặp mức xếp chồng của tập NLT với bản đồ bit PL/NL của mỗi trường, thu được danh sách các bộ độ dài tiền tố PLT.

5 B5: Kết hợp danh sách bộ PLT với tiền tố mỗi trường, chúng ta nhận được các cặp khoá́

Trang 29

e Thuật toán tích chéo và trộn NLT

• Số tập quy tắc con nhiều thì tiêu tốn nhiều tài nguyên khi

sử dụng bộ lọc Bloom Nhưng nếu số tập con ít thì lại có khả năng sinh nhiều quy tắc chéo

• Phương pháp gom nhóm không chồng nhau thì không sinh ra quy tắc tích chéo nào nhưng số tập quy tắc con lại rất nhiều Mặt khác thì phân phối quy tắc có độ lệch cao

• Phần lớn số quy tắc tập

trung trong một số rất ít

Trang 30

e Thuật toán tích chéo và trộn NLT

• Sau khi trộn NLT thì các tập con chứa quy tắc

có thể thuộc nhiều NLT khác nhau do đó không thể dùng bản đồ bit NLT và bản đồ bit PL/NL.

• Lúc này thuật toán tương tự với thuật toán tích chéo đa tập con.

• Với thuật toán này số quy tắc tích chéo đã giảm bớt rất nhiều trong khi số bộ lọc Bloom sử dụng

Trang 31

f Kết quả

Số QT

Số QTTC TT1

Số QTTC TT2

Số tập con TT2 con TT3 Số tập con TT4 Số tập

Số QTTC TT4

Trang 32

2.3 Bài toán khai phá phần tử phổ biến

Luồng dữ liệu và phần tử phổ biến

Trang 33

a Luồng dữ liệu và phần tử phổ biến

• Một luồng dữ liệu là một chuỗi không giới hạn của các phần tử dữ liệu được truyền đi với tốc độ cao

• Trong phần này ta ĐN luồng dữ liệu S là một chuỗi gồm

N cặp của N phần tử kết hợp với nhãn thời gian khi xuất hiện phần tử đó

• S = {(e1, t1), (e2, t2),…, (eN, tN)}

• Một phần tử phổ biến là một phần tử có tần số xuất hiện

Trang 34

Các phần tử cũ

hơn đóng góp trọng số ít hơn tới tần số phần tử đó.

Mô hình này thích hợp với các ứng dụng trong đó dữ liệu cũ có tác động vào khai phá

nhưng tác động này giảm dần theo thời gian.

b Mô hình Damped

Trang 35

c Bộ đếm phân rã theo thời gian

• Bộ đếm phân rã theo thời gian hay còn gọi đơn giản là bộ đếm phân rã là một bộ đếm mà giá trị của nó phân rã theo từng giai đoạn

• Giá trị của bộ đếm giảm theo một hàm không âm, không tăng, gọi là hàm phân rã theo thời gian (TDF) Một hàm TDF phải thoã mãn các điều kiện sau:

» = 1

» là hàm không tăng ( 0 )

) 0 (

Trang 36

d Bộ lọc ESBF Extensible and scalable bloom Filter

• Bộ lọc ESBF bao gồm một chuỗi EBF và số bộ lọc EBF trong ESBF có thể thay đổi

ESBF

• Kích thước của EBF mới là M1si, trong đó M1 là kích thước của bộ lọc đầu tiên và i là số bộ lọc hiện có của

Trang 37

d Bộ lọc ESBF

• EBF (Extensible

Bloom Filter): bộ

đếm mở rộng linh

Trang 38

d Bộ lọc ESBF

• Ban đầu, chỉ có các bộ

đếm BC và OF

• Một BC tràn: một LC

được tạo ra Giá trị BC

chuyển sang LC và giá

trị BC là con trỏ trỏ tới

LC Giá trị OF bật lên 1

LC0

0

1

00

0000

EBF

Trang 39

• Chia vectơ bit V thành h phần, h: số hàm băm Mỗi phần

có m’=m/h (bit)

d Bộ lọc ESBF

EBF

Trang 40

e Thuật toán MIBFD

• Hàm tính độ phổ biến của các phần tử MIBFD(M)

• Hàm phân rã Decay()

• Hàm chèn phần tử vào bộ lọc Insert(k)

Trang 42

Hàm phân rã

• Sau mỗi chu kỳ t phân rã một

lần

• Sau khi phân rã nếu giá trị LC

nhỏ hơn 2x – 1 thì thu hồi LC

và copy giá trị LC về BC

• Các bộ đếm LC có thể được

thêm và thu hồi liên tiếp, đưa

ra ngưỡng T thuộc khoảng:

[2x – 1,2x – 1]

OF = 1 Begin

Phân rã LC

LC < T

BC=LC Giải phóng LC OF=0

Phân rã BC yes

no

yes no

Trang 43

Hàm chèn phần tử vào bộ lọc

• Chọn bộ lọc EBF thích hợp

để chèn

• Khi bộ đếm BC C[i][h i (k)] với

1≤ i ≤ h bị tràn thì tạo ra bộ

đếm LC new với độ dài là 2x (x

là độ dài của BC)̀ và giá trị

của BC là con trỏ tới LC new

• Đồng thời OF[i][h i (k)] được

gán là 1 để̉ chỉ ra rằng bộ

OF = 1 Begin

BC = BC + 1

BC bị

tràn?

LC = LC + 1 no

yes

yes no

Chọn EBF thích hợp

Trang 44

3 Một số ứng dụng khác của bộ lọc Bloom

1 Khai phá phần tử phổ biến trong luồng dữ liệu.

2 IP traceback: lưu trữ đặc trưng của gói tin

trong router, dùng để xác nhận lại gói tin đã đi qua.

3 Web caching trong mạng peer to peer: chia sẽ

bộ nhớ cache giữa các máy trong mạng.

Trang 45

• Kết quả đạt được:

Tìm hiểu cấu

trúc và cách

thức hoạt

động của bộ

lọc Bloom cơ

bản Cài đặt

Tìm hiểu và cài đặt một số bài toán có ứng dụng bộ

Trang 46

• Hướng phát triển:

Tìm hiểu và nghiên

cứu sâu hơn về các

cải tiến của bộ lọc

Bloom: DBF, SBF,

Compressed BF,…

Tìm hiểu và phát triển các ứng dụng thực tế có khả năng

áp dụng bộ lọc Bloom

Kết luận

Ngày đăng: 19/06/2014, 20:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w