Bloom Filter的基本原理和變種

2022-03-09 07:21:48 字數 1091 閱讀 7585

學習乙個東西首先要知道這個東西是什麼,可以做什麼,接著再了解這個東西有什麼好處和優勢,然後再學習他的工作原理。下面我們分別從這三點簡單介紹一下bloom filter,以及和他的變種。

what:在允許一定的錯誤率的情況下,用於判斷乙個元素是否屬於乙個集合,bloom filter可能會將乙個不屬於集合的元素誤判為屬於這個集合,即false positive。可以應用於檢查乙個url是否已經被爬蟲爬過、網路快取共享、字串匹配等等

why:時間和空間效率較高(與hash比較)

how

從hash到bloom filter:傳統hash:

改進hash:儲存元素:開闢h個格仔,對集合中的每個元素,hash出格仔的下標,不直接儲存元素的值,而是儲存元素的編碼,通常編碼的位數比元素值的位數小,把元素值對映成新的編碼(hash)可能會有衝突(不同元素的編碼相同)

查詢:同傳統hash

優點:較傳統hash空間複雜度低

缺點:存在一定的錯誤率,用正確率換取空間;無法恢復原來元素的值

bloom filter:儲存和查詢童第3點

優點:不用考慮衝突的情況,因為允許一定的錯誤率,時空效率高

bloom filter的變種counting bloom filter:原始的bloom filter不支援刪除操作,cbf通過對位陣列進行擴充套件,把原來1位擴充套件為t位用於計數。每次儲存時將對應k個hash下標的位計數+1,刪除時相應的對k個hash下標計數-1,從而支援集合刪除操作

partial bloom filter: 原始bloom filter的hash函式值的範圍是0~m-1,即整個位陣列的下標範圍,而在pbf中每個hash函式的取值範圍較小,相互間沒有交集,位陣列被分成 k個區域,每個hash函式值負責乙個區域。好處是準確率比原始的高,且可以並行訪問陣列,優化程式效能

compressed bloom filter:對原始的bloom filter進行壓縮,用於網路傳輸應用。好處是經過壓縮的bloom filter的錯誤率更低、所需位數更少、所需hash函式更少

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

pwm控制的基本原理 PWM控制的基本原理

pwm pulse width modulation 控制 脈衝寬度調製技術,通過對一系列脈衝的寬度進行調製,來等效地獲得所需要波形 含形狀和幅值 pwm控制技術在逆變電路中應用最廣,應用的逆變電路絕大部分是pwm型,pwm控制技術正是有賴於在逆 變電路中的應用,才確定了它在電力電子技術中的重要地位...

彩信的基本原理

1 基本概念 8613 mmsc bj rsv.monternet.com 最新更新若干問題 彩信常見問題簡答 手機關機或不在服務區影響彩信的接收嗎?答 手機關機或不在服務區時是無法接收彩信的,但彩信會在系統中保留24小時,一旦開機或進入網路服務區,彩信手機仍然可以正常接收到彩信。如果手機在10分鐘...