bloom filters cho bài toán về quản lý black list và white list thẻ từ trong giao thông công cộng

69 3 0
Tài liệu đã được kiểm tra trùng lặp
bloom filters cho bài toán về quản lý black list và white list thẻ từ trong giao thông công cộng

Đ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

Từ năm 2019 đến nay, với cuộc cách mạng công nghiệp 4.0 hiện nay thì ngành giao thông công cộng cũng đang dần chuyển mình để thay thế vé giấy truyền thống với sử dụng vé điện tử và thẻ đ

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH

TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học: PGS.TS Thoại Nam

Cán bộ chấm nhận xét 1: TS Hà Minh Tân

Cán bộ chấm nhận xét 2: TS Lê Trọng Nhân

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 23 tháng 01 năm 2024 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 TS Nguyễn Lê Duy Lai

2 TS Nguyễn Quang Hùng

3 TS Hà Minh Tân

4 TS Lê Trọng Nhân

5 TS Hà Việt Uyên Synh

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA _

CỘNG HOA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: NGUYỄN HOÀNG PHÚC MSHV: 1970595

Ngày, tháng, năm sinh: 18/08/1993 Nơi sinh: TP Hồ Chí Minh Chuyên ngành: Khoa học Máy tính Mã số: 8480101

I TÊN ĐỀ TÀI:

BLOOM FILTERS CHO BÀI TOÁN VỀ QUẢN LÝ BLACK LIST VÀ WHITE LIST THẺ TỪ TRONG GIAO THÔNG CÔNG CỘNG

II NHIỆM VỤ VÀ NỘI DUNG:

- Tìm hiểu, nghiên cứu cấu trúc dữ liệu Bloom Filter và các biến thể cải tiến của Bloom Filter là Counting Bloom Filter và Scalable Bloom Filter để đáp ứng nhu cầu luận văn - Đề xuất giải pháp một mô hình quản lý, chia sẻ, xác thực thẻ từ ứng dụng công nghệ

Bloom Filter

- Tiến hành giả lập thí nghiệm, thu thập và đánh giá kết quả giải pháp

III NGÀY GIAO NHIỆM VỤ: 04/09/2023

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 18/12/2023

V CÁN BỘ HƯỚNG DẪN: Phó giáo sư, Tiến sĩ Thoại Nam

Trang 4

Lời cảm ơn

Em xin cảm ơn các thầy cô trong tổ bộ môn Khoa Học Máy Tính, các thầy cô tại trường đại học Bách Khoa đã giảng dạy, giúp đỡ em trong suốt quá trình học tập và nghiên cứu Đặc biệt, trong suốt quá trình học thực hiện đề tài, em luôn nhận được sự động viên của bạn bè, đồng nghiệp và người thân trong gia đình Đồng thời, e xin gửi lời cám ơn sâu sắc tới thầy Thoại Nam, với sự hướng dẫn khoa học của thầy đã giúp em xây dựng được kết quả khóa luận này Hy vọng luận văn sẽ nhận được những ý kiến đóng góp của hội đồng để nội dung ngày một hoàn thiện hơn

Trân trọng cảm ơn!

Trang 5

Tóm tắt luận văn

Trong cuộc Cách mạng công nghiệp 4.0, Việt Nam đã đưa ra yêu cầu số hóa các thông tin của người dân và hệ thống giao thông công cộng Trong công cuộc số hóa này, các cấp lãnh đạo đã đưa ra chỉ thị các đơn vị giao thông vận tải cung cấp cho mỗi người dân một thẻ từ chứa thông tin xác thực để tham gia giao thông Từ đây nảy sinh ra các bài toán lớn về việc quản lý về lượng dữ liệu thẻ từ lớn của dân số Hà Nội nói riêng và Việt Nam nói chung Việc làm thế nào để kiểm chứng thông tin của một người dân một cách nhanh chóng và ổn định để người dân có thể tham gia giao thông đã trở thành một bài toán khó cho các công ty và tập đoàn công nghệ Vì vậy, một mô hình quản lý, chia sẻ kết hợp chứng thực thông tin trong danh sách black list, white list là một trong cái giải pháp tốt nhất để giải quyết bài toán trên Trong luận văn này, tôi đề xuất một mô hình giải pháp sử dụng Bloom Filter cho việc quản lý blacklist và whitelist thẻ từ trong giao thông công cộng

Trang 6

Abstract of dissertation

In the Fourth Industrial Revolution, Vietnam has set the requirement to digitize the information of its citizens and public transportation systems In this digitalization effort, the leadership issued directives to transportation units to provide each individual with a card containing authentication information for participating in traffic activities This initiative has given rise to significant challenges in managing the large volume of card data for the population of Hanoi specifically and Vietnam as a whole The management of how to quickly and stably verify the information of an individual for their participation in traffic has become a complex problem for technology companies and corporations Therefore, a model that combines the management and sharing of authenticated information in blacklists and whitelists is considered one of the best solutions to address this issue In this thesis, I propose a solution model using Bloom Filter for managing blacklists and whitelists of cards in public transportation

Trang 7

Lời cam đoan

Tôi tên Nguyễn Hoàng Phúc, học viên cao học khoa Khoa học máy tính, Đại học Bách Khoa TP Hồ Chí Minh, mã học viên 1970595 Tôi xin cam đoan luận văn tốt nghiệp: “BLOOM FILTER CHO BÀI TOÁN VỀ QUẢN LÝ BLACK LÍT VÀ ƯHITE LÍT THẺ TỪ TRONG GIAO THÔNG CÔNG CỘNG” là công trình nghiên cứu của bản thân Những phần sử dụng tài liệu tham khảo trong luận văn đã được nêu rõ trong phần tài liệu tham khảo Các số liệu, kết quả trình bày trong luận văn là hoàn toàn trung thực, nếu sai tôi xin chịu hoàn toàn trách nhiệm và mọi kỷ luật của bộ môn và nhà trường đề ra

Học viên

Nguyễn Hoàng Phúc

Trang 8

MỤC LỤC

Lời cảm ơn i

Tóm tắt luận văn ii

Abstract of dissertation iii

Lời cam đoan iv

Chương 1: Mở đầu 1

1.1 Giới thiệu đề tài 1

1.2 Cấu trúc luận văn 4

Chương 2: Cơ sở lý thuyết 5

2.1 Các nghiên cứu liên quan về hệ thống AFC 5

2.2 Bloom Filter 6

2.2.1.Thuật toán của Bloom Filter có thể được mô tả như sau: 7

2.2.2.Xác suất False Positive ε: 8

2.2.3.Số lượng hàm băm tối ưu: 9

2.3 Counting Bloom Filter 10

2.4 Scalable Bloom Filter (SBF) 14

2.4.1.Giới thiệu: 14

2.4.2.Partitioned Bloom Filter: 15

2.4.3.Scalable Bloom Filter: 17

2.4.4.Tham số tăng trưởng mở rộng: 18

2.4.5.Tỉ số thắt chặt r: 21

Chương 3: Giải pháp quản lý danh sách thẻ từ đen và trắng trong giao thông công cộng 24

3.1 Giới thiệu bài toán: 24

3.2 Giải pháp: 25

3.2.1.Counting Scalable Bloom Filter: 26

3.2.2.Mô hình quản lý tập trung cho các nhà xe: 31

Chương 4: Đánh giá giải pháp 40

4.1 Môi trường hiện thực và công cụ sử dụng 40

Trang 9

4.3 Kết quả đánh giá 51 Chương 5: Tổng kết và hướng phát triển đề tài 53 TÀI LIỆU THAM KHẢO 54

Trang 10

DANH MỤC HÌNH ẢNH

Hình 1.1: Trạm bán vé tháng xe buýt của HanoiBus 2

Hình 1.2: Cổng thu vé tự động của UNIPASS trên xe buýt 2

Hình 1.3: Thiết bị thu vé cầm tay trên xe VINBUS 3

Hình 2.1: Ví dụ trực quan một Bloom Filter với một tập hợp {x,y,z}, m = 18, k = 3 8

Hình 2.2: Tạo một CBF trống với kích thước m = 10 11

Hình 2.7: Không gian sử dụng tương đối với bộ lọc SBF với r = 0.5 và 𝑃 = 10 − 6 20

Hình 2.8: Tương quan giữa số lượng l giai đoạn với tham số tăng trưởng s với 2 sự tăng trưởng là 10^6 và 10^2 phần tử 20

Hình 2.9: Không gian sử dụng tương đối của hàm tăng trưởng với các sự kết hợp khác nhau của P và r với s =2 22

Hình 2.10: Mối liên hệ giữa r tối ưu và mức độ tăng trưởng với 𝑠 ∈ 2, 2, 4 và 𝑃 = 10 − 6 22

Hình 3.1: Mô hình quan hệ giữa trung tâm quản lý và các nhà xe 31

Hình 3.2: Mô hình quan hệ tổng quan toàn hệ thống 32

Hình 3.3: Nguồn dữ liệu của whitelist và blacklist 33

Hình 3.4: Mô hình phương thức hoạt động của dữ liệu Timeline hệ thống 34

Hình 3.5: Mô hình phương thức hoạt động của hệ thống sử dụng Timeline BloomFilter trung tâm 35

Hình 3.6: Mô hình luồng dữ liệu của giải pháp 37

Hình 4.1: Thông tin của CSBF trong các trường hợp số lượng dữ liệu khác nhau 43

Hình 4.2: Kết quả kiểm tra tính thành viên với phương thức tìm kiếm trong Database 44

Hình 4.3: Kết quả kiểm tra tính thành viên với phương thức kiểm tra trong một tập hợp 44

Hình 4.4: Kết quả kiểm tra tính thành viên với phương thức kiểm tra trong một chuỗi 45

Hình 4.5: Kết quả kiểm tra tính thành viên với phương thức kiểm tra trong bộ lọc Bloom 45

Hình 4.6: Kết quả kiểm tra tính thành viên trên mô phỏng máy POS 48

Hình 4.7: Thông tin thời điểm đồng bộ trên Trung tâm, máy POS và nhà xe theo thứ tự 49

Hình 4.8: Phần tử đầu tiên và số lượng phần tử đồng bộ của thiết bị POS và nhà xe theo thứ tự 51

Trang 11

DANH MỤC BẢNG

Bảng 2.1: Các giá trị tham số khác nhau của bộ lọc 32KB 16 Bảng 4.1: Bảng tổng hợp các thông số của hệ thống ứng với số lượng dữ liệu khác nhau với s ∈ {1,2} và bộ lọc ban đầu có số lượng phần tử tối đa là 200000 41

Trang 12

DANH MỤC TỪ TIẾNG ANH VÀ GIẢI NGHĨA

STT Từ tiếng anh Ý nghĩa

1 Whitelist Danh sách trắng, một danh sách các phần tử hợp lệ 2 Blacklist Danh sách đen, một danh sách các phần tử không hợp lệ 3 Bloom Filter Bộ lọc Bloom

4 False Positive Dương tính giả, báo động giả, không nhưng báo có 5 False Negative Âm tính giả, báo động sai, có nhưng báo không có 6 Counting Bộ đếm

7 Scalable Có khả năng mở rộng 8 Partition Phân vùng

9 Mergeable Có thể hợp nhất 10 Timeline Dòng thời gian

12 Database Cơ sở dữ liệu 13 Cache Bộ nhớ đệm

Trang 13

DANH MỤC TỪ VIẾT TẮT

STT Từ viết tắt Từ đầy đủ 1 FP False Positive

3 CBF Counting Bloom Filter 4 PBF Partitioned Bloom Filter 5 SBF Scalable Bloom Filter

6 CSBF Counting Scalable Bloom Filter 7 POS Point Of Sale

Trang 14

Chương 1: Mở đầu

1.1 Giới thiệu đề tài

Theo xu thế phát triển chung của thế giới, Việt Nam đang phải đối mặt với những vấn đề về giao thông đô thị như sự gia tăng của phương tiện cá nhân, áp lực về cơ sở hạ tầng và nhu cầu đi lại của người dân ngày càng cao Nhận thức rõ áp lực của phát triển dịch vụ vận tải đối với phát triển đô thị, Chính phủ và Bộ Giao thông Vận tải cũng như các địa phương từ nhiều năm trước đây và hiện nay đã xác định phát triển giao thông công cộng là giải pháp tối ưu và được ưu tiên phát triển để giải quyết tình trạng trên Theo Bộ Giao thông Vận tải, việc phát triển hệ thống vận tải hành khách công cộng đã đạt được những kết quả bước đầu Đến thời điểm này đã có 60/63 tỉnh, thành phố trên cả nước (trừ Yên Bái, Lai Châu, Hà Giang) có vận tải hành khách công cộng bằng xe buýt hoạt động với gần 10.000 phương tiện và 280 doanh nghiệp, hợp tác xã vận tải thực hiện Từ năm 2019 đến nay, với cuộc cách mạng công nghiệp 4.0 hiện nay thì ngành giao thông công cộng cũng đang dần chuyển mình để thay thế vé giấy truyền thống với sử dụng vé điện tử và thẻ điện tử nhằm bảo vệ môi trường và tiết kiệm nhiều chi phí trong việc in vé giấy hàng ngày cũng như việc thay đổi đường lối quản lý thông qua các báo cáo tự động từ các phần mềm thay vì sử dụng sức người truyền thống

Trang 15

Hình 1.1: Trạm bán vé tháng xe buýt của HanoiBus

Trong thời gian vừa qua có các nhà vận hành xe buýt ứng dụng công nghệ này có thể kể đến như Zalo với UNIPASS [1] đi đầu trong việc đầu tư thiết bị đọc thẻ từ trên các tuyến xe buýt tại TP Hồ Chí Minh VINBUS với hệ thống xe buýt điện và thanh toán bằng thẻ ATM kết hợp thẻ tháng do VINBUS phát hành [2] cho hệ thống xe buýt tại TP Hà Nội

Hình 1.2: Cổng thu vé tự động của UNIPASS trên xe buýt

Trang 16

Hình 1.3: Thiết bị thu vé cầm tay trên xe VINBUS

Trong quá trình chuyển đổi như vậy thì giải pháp sử dụng thẻ từ được tập trung hơn cả vì khi sử dụng thẻ từ thì mỗi người dân chỉ cần dùng một thẻ từ để có thể thanh toán cho toàn bộ các phương tiện công cộng mà người đó đã mua Điều đó giúp các nhà cung cấp dịch vụ tiết kiệm được một chi phí rất lớn trong việc in vé giấy hàng ngày và giúp bảo vệ môi trường

Và mới gần đây theo báo điện tử VnExpress ngày 28/11/2023 [15], Hà nội đã tổ chức khai trương thí điểm hệ thống vé điện tử liên thông đa phương thức cho giao thông công cộng Bằng việc triển khai vé điện tử đã giải quyết được nhiều bất cập, trong đó có tiết giảm kinh phí ngân sách nhà nước thông qua việc không còn cần nhân viên phục vụ Hiện tại số lượng tuyến được sử dụng vé điện tử liên thông đã lên đến > 25 tuyến mặc dù chỉ trong thời gian thí điểm Không chỉ vậy theo bài báo Nhà nước đang có kế hoạch trợ giá thêm cho xe buýt theo từng năm cho thấy vấn đề cấp thiết trong công cuộc thúc đẩy người dân sử dụng giao thông công cộng nhiều hơn

Với các hình thức trên thì hình thức sử dụng thiết bị xác thực trên phương tiện yêu cầu các giải pháp về công nghệ nhiều hơn hẳn các hình thức khác, điều đó xảy ra do các

Trang 17

thiết bị xác thực giờ đây sẽ luôn di chuyển chung với phương tiện Thiết bị xác thực hoạt động bằng việc kiểm tra xem thẻ của bạn có hợp lệ hay không dựa vào danh sách trắng và đen Hiện nay thì mỗi thiết bị cần phải đồng bộ về trung tâm vận hành để cập nhật lại danh sách mới nhất, sau đó mỗi khi cần xác thực thì máy sẽ quét toàn bộ dữ liệu đó để kiểm tra liệu thông tin thẻ có trong danh sách hay không Chúng ta sẽ cần giải quyết các bài toán về lưu lượng truyền dữ liệu từ các thiết bị về trung tâm vận hành, làm sao để thiết bị xác thực thực thi nhanh hơn để đáp ứng được các giờ cao điểm khách vào liên tục?

Chúng ta có thể áp dụng được công nghệ Bloom Filter vào ứng dụng này thì ta có thể giải đáp cùng một lúc cả hai bài toán trên Bloom Filter cung cấp chức năng kiểm xem dữ kiện 𝑥 có thuộc một tập 𝑆 không và ta có thể tối giản được không gian sử dụng thay vì kiểm tra trong tập dữ liệu truyền thống Vì vậy trong luận văn này ta phát triển một mô hình ứng dụng công nghệ Bloom Filter để quản lý thẻ từ whitelist và blacklist trong giao thông công cộng

1.2 Cấu trúc luận văn

Cấu trúc các phần còn lại của luận văn như sau:

Chương 2 trình bày các công trình nghiên cứu liên quan, các cơ sở lý thuyết về Bloom Filter, các biến thể của Bloom Filter cũng như các nghiên cứu về hệ thống AFC

Chương 3 trình bày mô hình đề xuất

Chương 4 trình bày về cách hiện thực, kịch bản đánh giá giải pháp Chương 5 tổng kết và phương hướng phát triển tiếp theo của đề tài

Trang 18

Chương 2: Cơ sở lý thuyết

2.1 Các nghiên cứu liên quan về hệ thống AFC

Hệ thống Automated Fare Collection (AFC) được giới thiệu lần đầu vào năm 1997 với hệ thống Octopus card ở Hồng Kong[3], Octopus card là loại thẻ từ thông minh không tiếp xúc được phát triển để thực hiện các giao dịch thanh toán trực tuyến hoặc không trực tuyến trên AFC của với hệ thống giao thông công cộng ở Hong Kong[3] Từ đó việc sử dụng thẻ từ thông minh contactless đã trở thành một tiêu chuẩn thanh toán của hệ thống AFC, mặc dù có nhiều hệ thống sử dụng nhiều phương thức thanh toán khác nhau

Một hệ thống AFC thường bao gồm các thành phần cơ bản: - Phương tiện thanh toán (thẻ từ, tiền mặt, QR, …)

- Thiết bị đọc/ghi giao dịch (máy POS, cổng thanh toán cố định,…) - Các máy trạm kết nối với các thiết bị đọc/ghi

- Trung tâm văn phòng vận hành - Hệ thống xử lý vận hành trung tâm

Gần đây khi các ngân hàng đang tiến hành phát hành các loại thẻ từ thông minh không tiếp xúc thì các hệ thống AFC cũng kết hợp với ngân hàng tích hợp sử dụng thẻ ngân hàng song song với các loại thẻ từ mà hệ thống đang cung cấp để mang lại sự tiện nghi cho người dùng

Ở Việt Nam ta, từ năm 2019 trên địa phận thành phố Hồ Chí Minh Zalo đã phối hợp với một số nhà vận hành xe buýt phát triển hệ thống AFC ứng dụng thẻ UNIPASS trên một số tuyến xe[1] Về phương thức thanh toán của hệ thống của UNIPASS thì mỗi khi khách hàng chạm thẻ vào thiết bị đọc sẽ gọi về các máy trạm để tiến hành xác thực và thanh toán Tuy nhiên Zalo vẫn chưa giải quyết được việc nhà vận hành xe buýt vẫn phải

Trang 19

bán vé giấy đối với các trường hợp sử dụng tiền mặt và các dạng thanh toán khác Tuy nhiên vào năm 2021 thì công ty VINBUS – một công ty con của tập đoàn VINGROUP đã phát triển một hệ thống AFC mới với độ tích hợp cao cho các nhà phân phối khác nhau kể cả các ngân hàng khi sử dụng máy Point of Sale (POS) xác thực tại chỗ cho khách hàng khiến trải nghiệm khách hàng được nâng cao và tiện lợi hơn Tuy nhiên khi tìm hiểu hơn về hệ thống thì chúng ta đã thấy cách máy POS mà VINBUS hiện đang vận hành đang gặp một vài vấn đề về tốc độ xử lý, dung lượng đường truyền lớn cần có phường án để giải quyết khi hệ thống càng lúc càng phát triển

Bước đến năm 2022, Đảng và nhà đã ra chỉ thị bắt đâu công cuộc số hóa cho giao thông công cộng với bài toán phát hành thẻ từ, thẻ điện tử cho khách hàng Khi này với sự gia tăng nhanh chóng của tập khách hàng sử dụng giao thông công cộng, bài toán lại phát sinh về tập dữ liệu lớn của khách hàng Khi khách hàng sử dụng thẻ từ, thẻ điện tử thì cần nhanh chóng xác định tính hợp lệ để cho phép khách hàng sử dụng dịch vụ Với lượng dữ liệu lớn việc xác minh danh tính hợp lệ cần các hệ thống tốn thêm nhiều thời gian hơn và việc đó làm giảm trải nghiệm của khách hàng Và với tập khách hàng khó tính như Việt Nam thì việc trải nghiệm chậm trễ luôn là một điểm trừ rất lớn Vì vậy cần có một giải pháp có thể đáp ứng được các nhu cầu về giảm dung lượng đường truyền, giảm thời gian xác thực, đảm bảo được tính hiệu quả

2.2 Bloom Filter

Bloom Filter lần đầu được trình bày bởi Burton Howard Bloom vào năm 1970 Bloom Filter là một cấu trúc dữ liệu xác suất được tối ưu cho không gian nhằm mục đích kiểm tra một phần tử nào đó có phải thuộc trong một nhóm không? Những kết quả dương tính giả (False Positive) có thể xảy ra nhưng tuyệt đối không xuất hiện trường hợp âm tính giả (False Negative) – nói cách khác thì khi chúng ta tiến hành kiểm tra một phần tử liệu có thuộc trong một tập hợp thì ta sẽ có câu trả lời là “Có thể thuộc” hoặc “Chắc chắn

Trang 20

không thuộc” Số lượng dữ liệu trong tập hợp càng nhiều thì tỉ lệ False Positive sẽ càng lớn

Ý tưởng của Bloom là ánh xạ một phần tử𝑥 ∈ 𝑆 vào một giá trị 𝑦 = ℎ(𝑥) ∈ 𝑌 sử dụng một hàm băm h(), và kiểm tra tính thành viên của một phần tử 𝑥′ ∈ 𝑆 bằng việc kiểm tra 𝑦′ = ℎ(𝑥′) ∈ 𝑌 và thực hiện điều đó với nhiều hàm băm h

Với nghiên cứu của Bloom, bằng việc đánh đổi tỉ lệ false positive, Bloom Filter có lợi thế về không thời gian (Probability of false positives) đáng kể so với các cấu trúc dữ liệu khác để biểu diễn các tập hợp, chẳng hạn như cây tìm kiếm nhị phân tự cân bằng (self-balancing binary search trees), cây tiền tố (digital tree – prefix tree), bảng băm(hash table), mảng đơn(simple arays) hoặc danh sách liên kết(linked list) của các mục Hầu hết trong các cấu trúc dữ liệu trên đều yêu cầu lưu dữ một số dữ liệu cần thiết, có thể là bất kỳ dữ liệu gì từ một số lượng nhỏ bit đối với số nguyên nhỏ, cho đến số lượng bit tùy ý đối với chuỗi (còn cây tiền tố là một ngoại lệ vì chúng có thể chia sẻ bộ nhớ giữa các phần tử với tiền tố giống nhau) Bộ lọc Bloom hoàn toàn không lưu trữ các mục dữ liệu, có giải pháp riêng cho việc lưu trữ thực tế Các cấu trúc được liên kết phải chịu thêm chi phí không gian tuyến tính cho con trỏ Ngược lại, bộ lọc Bloom có sai số 1% và giá trị tối ưu là k chỉ yêu cầu khoảng 9,6 bit cho mỗi phần tử, bất kể kích thước của các phần tử Ưu điểm này một phần đến từ tính nhỏ gọn của nó, được thừa hưởng từ mảng và một phần đến từ tính chất xác suất của nó Tỷ lệ False Positive 1% có thể giảm đi 10 lần bằng cách chỉ thêm khoảng 4,8 bit cho mỗi phần tử

2.2.1 Thuật toán của Bloom Filter có thể được mô tả như sau:

Bloom Filter là một chuỗi bit B với độ dài m, tất cả đều được đặt là 0 Chúng ta định nghĩa một tập hợp 𝑆 = { 𝑥1, 𝑥2, … , 𝑥𝑛} , 𝑥 là một phần tử và 𝑥 ∈ 𝑆 , k hàm băm ℎ1(∙), … ℎ𝑘(∙), trong đó chức năng mỗi hàm sẽ ánh xạ các phần tử trong tập hợp S vào một trong các bit của chuỗi bit m, từ đó tạo nên một phân phối ngẫu nhiên thống nhất

Trang 21

Nhìn chung thì k như là một hằng số quyết định tỉ lệ false positive ε, còn m tỉ lệ với k và số lượng phần tử cần thêm vào tập hợp

Hình 2.1: Ví dụ trực quan một Bloom Filter với một tập hợp {x,y,z}, m = 18, k = 3

Để thêm một phần tử x vào tập hợp, cho phần tử đó đi qua từng hàm băm k để có được chuỗi bit mxx của phần tử x khi đó ta sẽ tiến hành OR với chuỗi m bit đang có sẵn chúng ta sẽ có một chuỗi m bit mới đại diện cho tập hợp có phần tử x mới

Để kiểm tra một phần tử y có trong tập hợp hay không, ta vẫn làm tương tự khi thêm phần tử để có chuỗi bit của phần tử y tương ứng Khi này ta sẽ kiểm tra nếu có bất kì bit nào của chuỗi bit mà trong chuỗi m vị trí bit đó là 0 thì phần tử chắc chắn không thuộc tập hợp, nếu không thì phần tử y đã thuộc tập hợp đó Nhưng nếu chuỗi bit của y đều khớp với chuỗi bit m thì có khả năng là vị trí đó đã được đánh thành 1 từ một phần tử khác trong tập hợp, từ đó dẫn đến trường hợp False Positive Đây là một điều đánh đổi của Bloom Filter cho lợi thế về không gian và thời gian

2.2.2 Xác suất False Positive ε:

Giả sử hàm băm cho ra các giá trị của một mảng đó xác suất giống nhau m là số bit trong mảng đó, xác suất để một bit nhất định không được đặt thành 1 bời hàm băm trong quá trình thêm một phần tử là:

Trang 22

1 − 1𝑚

Nếu k là số lượng hàm băm và và mỗi hàm băm không có mối tương quan đáng kể với nhau thì xác suất để một bit không được đặt thành 1 bởi bất kỳ hàm băm nào là:

(1 − 1

𝑚)𝑘 => xác suất để một bit thành 1 là: 𝑝 = 1 − (1 − 1

𝑚)𝑘Ta đã biết : lim

𝑚)𝑚 = 𝑒−1Từ đó ta suy ra được: (1 − 1

𝑚)𝑘 = ((1 − 1

≈ 𝑒−𝑘/𝑚 => 𝑝 = 1 − 𝑒−𝑘/𝑚

Nếu ta có số lượng phần tử n thì xác suất p giờ đây sẽ là: 𝑝 = 1 − 𝑒−𝑘𝑛/𝑚

Giờ khi kiểm tra tính thành viên của một phần tử trong một tập hợp Với k hàm băm ta sẽ có xác suất để một bit có giá trị là 1 như trên Từ đó suy ra ta có xác suất false positive là:

𝜀 = [1 − (1 − 1𝑚)

≈ (1 − 𝑒−𝑘𝑛/𝑚)𝑘

2.2.3 Số lượng hàm băm tối ưu:

Từ xác suất false positive 𝜀 ta có thể tính được rằng để 𝜀 đạt giá trị nhỏ nhất thì: 𝑘 = 𝑚

𝑛 ln 2

=> 𝜀 = (1 − 𝑒−( 𝑚𝑛 ln 2)𝑛/𝑚)

𝑚𝑛 ln 2

=> ln 𝜀 = −𝑚

𝑛( ln 2)2

Trang 23

ln 2= − log2𝜀

2.3 Counting Bloom Filter

Counting Bloom Filter được Li Fan Giới thiệu lần đầu vào năm 2000 Được Li Fan sử dụng để ứng dụng cho giao thức chia sẻ bộ đệm web rộng có khả năng mở rộng

Counting Bloom Filter (CBF) có thuật toán cũng tương tự như Bloom Filter, nhưng có một thay đổi quan trọng là thay vì dùng một bit để đánh giá trị thì CBF sử dụng bộ đếm (4 bits, 8bits,…) tùy thuộc vào độ lớn bao nhiêu bits của một bộ đếm mà kích thước của CBF lớn hơn một BF truyền thống bấy nhiêu lần Với sự thay đổi này ta có thể xóa phần tử ra khỏi cấu trúc BF

Cũng giống như BF, CBF được khởi tạo bằng cách tạo một mảng số đếm 0 với độ dài m Và mảng này cũng có kích thước cố định đã được định sẵn hoặc tính toán ra Vẫn với tập hợp phần tử 𝑆 = { 𝑥1, 𝑥2, … , 𝑥𝑛} , 𝑥 là một phần tử và 𝑥 ∈ 𝑆 , k hàm băm ℎ1(∙), … ℎ𝑘(∙) Điều khác biệt xảy ra khi chúng ta bắt đầu thêm phần tử vào CBF

Giả sử ta có một CBF với m = 10 và k = 3

Trang 24

Hình 2.2: Tạo một CBF trống với kích thước m = 10

Hình 2.3: Thêm "Phần tử 1" vào CBF

Khi thêm một phần tử vào CBF, các hàm băm sẽ tính toán được các vị trí tương ứng trong mảng CBF Khi này các bộ đếm tương ứng sẽ bắt đâu tăng giá trị như hình trên Thêm “Phần tử 1” vào CBF khi đi qua các hàm băm ta có chuỗi 𝑚𝑥 của “Phần tử 1” với các bộ đếm ở vị trí 0, 5, 8 được tăng lên 1 Khi này ta tiến hành + chuỗi 𝑚𝑥 của “Phần tử 1” với chuỗi m ban đầu của CBF và được kết quả như hình trên

Trang 25

Hình 2.4: Thêm "Phần tử 2" vào CBF

Khi thêm “Phần tử 2” vào CBF ta sẽ tính ra được chuỗi 𝑚𝑥′ với các bộ đếm 2 6 9 được tăng thêm 1 Ta tiến hành + chuỗi 𝑚𝑥′ với chuỗi m của CBF Như vậy ta có một CBF mới bộ đếm 8 đã tăng thêm 2 giá trị so với ban đầu Đây là điểm khác nhau mấu chốt giữa CBF và BF Với cấu tạo là chuỗi bộ đếm thì sau khi đi qua các hàm băm thì các giá trị của các bộ đếm ở vị trí tương ứng sẽ tăng thêm 1 hoặc giảm đi 1 nếu là hoạt động xóa bỏ phần tử

CBF hỗ trợ cho ta thêm chức năng xóa bỏ các phần tử Cách thức hoạt động khi xóa bỏ cũng tương tự như khi thêm phần tử, chỉ có điều là khi này các bộ đếm sẽ giảm đi một đơn vị Giả sử cũng với ví dụ trên ta xóa đi “Phần tử 1”

Trang 26

Xác suất False Positive ε:

Do CBF có cách sử dụng hoàn toàn tương tự với BF nên ta vẫn có thể áp dụng công thức tính xác suất False Positive:

𝜀 = [1 − (1 − 1𝑚)

Trang 27

𝑘 = 𝑚𝑛 ln 2

Hoặc ta có thể tính được độ dài m cần thiết đối với một số lượng n nhất định và xác suất False Positive 𝜀:

𝑚 = − 𝑛 ∗ ln 𝜀(ln 2)2

CBF mang đầy đủ các đặc tính của BF bao gồm tính chất hoàn toàn không có kết quả false-negative Khi kết quả trả về là false ta luôn chắc chắn được rằng kết quả đó là 100% false Bởi vì chỉ cần một vị trí không có giá trị nghĩa là phần tử đó hoàn toàn ko có trong hệ thống CBF có khả năng thêm bớt phần tử của tập hợp thay vì chỉ thêm như BF

2.4 Scalable Bloom Filter (SBF) 2.4.1 Giới thiệu:

Almeida và các cộng sự [8] đã chỉ ra hạn chế cố định chuỗi bit B của Bloom Filter bằng một phiên bản Bloom Filter có khả năng tự mở rộng là Scalable Bloom Filter SBF giải quyết vấn đề phải chọn kích thước cố định cho một tập hợp và cho phép sự mở rộng tùy ý của tập hợp các phần tử được biểu diễn: Hai ý tưởng chính của SBF là:

- SBF được tạo thành từ các Partitioned Bloom Filter (PBF) [12] Khi các PBF đầy do giới hạn về tỉ lệ lấp đầy, một bộ lọc mới sẽ được thêm vào, khi tiến hành kiểm tra tính thành viên ta sẽ kiểm tra ở mỗi PBF

- Mỗi PBF mới thêm vào được tạo với xác suất False Positive tối đa chặt chẽ hơn trên cấp số nhân, sao cho xác suất False Positive gộp trên toàn bộ SBF hội tụ tại một giá trị mong muốn nào đó, kể cả khi số lượng tập hợp lớn đến vô hạn

Trang 28

2.4.2 Partitioned Bloom Filter:

Partitioned Bloom Filter(PBF) [12] là một biến thể của BF Để tối ưu hóa hiệu quả của các hàm băm k, mỗi hàm băm ℎ1(∙), … ℎ𝑘(∙), nên là một thành phần của lớp hàm băm phổ quát (the class of universal hash functions [13]) Với sự tối ưu trên PBF cấu tạo bởi các phân vùng của M bits độ dài của BF theo k hàm băm, từ đó ta sẽ được m phân lớp hay có thể gọi là m lát cắt với m = M/k Trong biến thể này, mỗi hàm băm ℎ1(∙), … ℎ𝑘(∙) với 1 < i < k, tạo ra một chỉ số trên lát cắt m tương ứng với nó Do đó, mỗi phần tử sẽ luôn được mô tả chính xác bằng k bit, điều này dẫn đến bộ lọc mạnh hơn và không tồn tại phần tử nhạy cảm với kết quả False Positive

Với PBF khi này False Positive xảy ra khi sự hiện diện của phần tử x, không thuộc tập hợp nhưng tất cả các k bits được tính toán bới ℎ1(∙), … ℎ𝑘(∙) lại thể hiện tồn tại phần tử x trong tập hợp do sự thêm vào của các phần tử khác gây nên Về mặt trực quan, nếu số lượng lát cắt k hoặc kích thước m của PBF tăng lên thì tỉ lệ lỗi sẽ giảm

Xác suất để một bit có giá trị (được đánh lên 1) trong một lát cắt là tỉ lệ lấp đầy 𝑝, giữa số lượng các bit có giá trị trong một lát cắt với kích thước bộ lọc m Với một giá trị bộ lọc m lớn, tỉ lệ này là như nhau ở tất cả các lát cắt Từ đó, với SBF ta có xác suất False Positive là:

𝑃 = 𝑝𝑘

Trong mỗi lát cắt, xác suất của một bit có giá trị sau khi bộ lọc thêm một phần tử mới là 1/𝑚, và xác suất một bit vẫn là 0 là 1 − 1/𝑚 Nếu có n phần tử được thêm vào, tỉ lệ xác suất của một bit vẫn là 0 là: (1 − 1/𝑚)𝑛 Vì vậy tỉ lệ các bit có giá trị trong một lát cát sau khi có n phần tử được thêm vào bộ lọc cũng là tỉ lệ lấp đầy p có công thức:

𝑝 = 1 − (1 − 1𝑚)

𝑛

Trang 29

Từ những phân tích trên Almeida chỉ ra cách để xác định các tham số k ( hoặc m) từ một bộ lọc có kích thước M, Ta có thể tối đa hóa số lượng n phần tử được thêm vào một bộ lọc nhưng vẫn giữ được tỉ lệ xác suất False Positive P

Từ nghiên cứu Bloom Filter ta được biết 1 − 1

𝑚 ≈ 1 − 𝑒−1/𝑚 từ đó ta có: 𝑝 = 1 − 𝑒−𝑛/𝑚

Bảng 2.1: Các giá trị tham số khác nhau của bộ lọc 32KB

False Positive rate (P) 0.1% 0.01% 0.001% 0.0001%

Trang 30

Number of element (n) 18232 13674 10939 9116

2.4.3 Scalable Bloom Filter:

Từ những nghiên cứu và phân tích trên Scalable Bloom filter bắt đầu với một PBF ban đầu có 𝑘0 lắt cắt và xác suất False Positive 𝑃0 Khi PBF này đầy, một PBF mới sẽ được thêm vào với 𝑘1 lát cắt và xác suất False Positive 𝑃1 = 𝑃0𝑟, r là tỉ lệ thắt chặt với 0 < 𝑟 < 1 Như vậy tại một thời điểm nào đó ta sẽ có 𝑙 bộ lọc với xác suất False Positive 𝑃0, 𝑃0𝑟, 𝑃0𝑟2, … , 𝑃0𝑟𝑙−1 Xác suất False Positive trên toàn SBF sẽ là

𝑃 = 1 − ∏(1 − 𝑃0𝑟𝑖)

Ta có thể áp dụng phép tính gần đúng như sau: 1 − ∏(1 − 𝑃𝑖)

≤ lim

𝑙 → ∞∑ 𝑃0𝑟𝑖𝑙−1

Trang 31

Từ những tham số trên ta có thể xác định được xác suất False Positive của một SBF là:

𝑃 ≤ 2𝑃0 = 21−𝑘0

2.4.4 Tham số tăng trưởng mở rộng:

Một tham số quan trọng nữa của SBF là tham số tăng trưởng mở rộng 𝑠 Trên thực tế khi sử dụng SBF ta sẽ mong muốn một SBF khởi đầu với kích thước nhỏ và tăng dần về sau để có thể tối ưu hóa bộ nhớ Tham số tăng trưởng được thêm vào để có thể đáp ứng nhu cầu đó Khi một PBF mới được thêm vào SBF, kích thước của PBF đó có thể tính trực tiếp từ xác suất False Positive Ta có thể tạo nên một sự tăng trưởng linh hoạt hơn bằng cách tăng kích thước bộ lọc theo cấp số nhân Từ ý tưởng đó Almeida đã giới thiệu cho chúng ta một SBF được tạo nên từ các PBF với kích thước tăng dần 𝑚0, 𝑚0𝑠, 𝑚0𝑠2, … , 𝑚0𝑠𝑙−1

Một PBF sẽ đầy khi tỉ lệ lấp đầy đạt tới ½ khi đó PBF i sẽ chứa: 𝑛𝑖 ≈ 𝑚0𝑠𝑖ln 2 phần tử Khi SBF thứ 𝑙 được thêm vào thì khi này nó sẽ chứa đựng:

𝑛𝑙 = (𝑙𝑛2)𝑚0∑ 𝑠𝑖𝑙−1

phần tử

Trang 32

Hình 2.6: Biểu diễn không gian sử dụng của 2 SBFs với hệ số phát triển s = 1 và s = 2 với r = 0.5, m0

= 128, 𝑃 = 10−6so sánh với một BF cố định

Với sự phát triển này cho phép SBF thích ứng nhanh chóng với các tập hợp có độ lớn khác nhau Sự lựa chọn tối ưu sẽ là s = 2 khi này cho phép 𝑚𝑖 có giá trị tương quan như một lũy thừa của 2 Trong hình 9 Almeida cho chúng ta thấy sự khác biệt về kích thước của SBF khi kích thước của tập hợp phần tử thay đổi với kích thước của PBF ban đầu 𝑚0 = 128 Ta có thể thấy nếu giữ nguyên 𝑚0 kích thước của SBF tăng trưởng gần như tuyến tính như vậy sẽ không hiệu quả về không gian sử dụng của SBF cũng như chi phí tính toán số lượng hàm băm Còn đối với s = 2 ta có thể thấy không chỉ số lượng PBF được giữ ở mức thấp mà không gian sử dụng của SBF cũng gia tăng logarith theo kích thước của tập hợp phần tử Và khi kích thước phần tử đạt 22624 phần tử thì SBF chỉ nhỉnh hơn một ít so với một bộ lọc BF cố định Ngoài ra Almeida cũng cho chúng ta hiểu hơn về khả năng thích ứng của SBF với sự tăng trưởng thông qua 3 hình dưới đây

Trang 33

Hình 2.7: Không gian sử dụng tương đối với bộ lọc SBF với r = 0.5 và 𝑃 = 10−6

Hình 2.8: Tương quan giữa số lượng l giai đoạn với tham số tăng trưởng s với 2 sự tăng trưởng là 10^6 và 10^2 phần tử

Trang 34

Ở hình 10 ta có thể thấy không gian tương đối của một SBF sử dụng khi mức độ tăng trưởng gấp 6 lần ban đầu, với s = 2 ta thấy rằng không gian sử dụng chỉ gấp đôi so với ban đầu, với s = 4 ta còn tiết kiệm được thêm 50% không gian so với s = 2 Ta thấy khi 1 < s < 2 sẽ mang lại các kết quả không tốt Ở hình 11 ta được thấy mối tương quan giữa số lượng giai đoạn và s với 2 trường hợp tập hợp tăng trưởng 102 và 106, từ hình ta nhận thấy s không nên được chọn giá trị 1 < s < 2 vì vậy s là lũy thừa của 2 là một sự lựa chọn hợp lý khi ta xét về khía cạnh này Từ 2 yếu tố trên ta có thể kết luận được s nên được chọn là lũy thừa của 2 và nên chọn s = 2 với sự tăng trưởng nhỏ và s = 4 với sự tăng trưởng nhanh của tập hợp phần tử

2.4.5 Tỉ số thắt chặt r:

Cuối cùng khi sử dụng SBF chúng ta cần xác định một tham số quan trọng đó là tỉ số thắt chặt r: Ở trên để làm ki là một số nguyên ta đã chọn r = ½ theo tự nhiên nhưng ta hoàn toàn có thể chọn những con số khác ngoài ½ và làm tròn kết quả số lượng hàm băm của bộ lọc i:

𝑘𝑖 = 𝑘0+ 𝑖 log2𝑟−1

Ngày đăng: 22/05/2024, 11:18

Tài liệu cùng người dùng

Tài liệu liên quan