একটি ব্লুম ফিল্টারকে একটি ডেটা স্ট্রাকচার হিসাবে সংজ্ঞায়িত করা হয় যা একটি সেটে একটি উপাদানের উপস্থিতি দ্রুত এবং মেমরি কার্যকর পদ্ধতিতে সনাক্ত করার জন্য ডিজাইন করা হয়েছে৷
সম্ভাব্য ডেটা স্ট্রাকচার নামে একটি নির্দিষ্ট ডেটা স্ট্রাকচার ব্লুম ফিল্টার হিসাবে প্রয়োগ করা হয়। এই ডাটা স্ট্রাকচার আমাদের শনাক্ত করতে সাহায্য করে যে একটি উপাদান একটি সেটে উপস্থিত বা অনুপস্থিত।
বিট ভেক্টর একটি বেস ডেটা স্ট্রাকচার হিসাবে প্রয়োগ করা হয়। এখানে একটি ছোট যা আমরা ব্যাখ্যা করতে ব্যবহার করব
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
সেই টেবিলের প্রতিটি খালি ঘর একটি বিট এবং এর নীচের সংখ্যাটি তার সূচক বা অবস্থান নির্দিষ্ট করে। ব্লুম ফিল্টারে একটি উপাদান যুক্ত করতে, আমরা এটিকে কয়েকবার হ্যাশ করি এবং সেই হ্যাশগুলির অবস্থান বা সূচকে বিট ভেক্টরে বিটগুলিকে 1 এ সেট করি।
ব্লুম ফিল্টারের বিস্তৃত বাস্তবায়ন নিয়ে আলোচনা করা হয়েছে নিচে
ব্লুম ফিল্টার দুটি ক্রিয়া সমর্থন করে, প্রথমে বস্তু যুক্ত করা এবং একটি বস্তুর ট্র্যাক রাখা এবং পরবর্তীতে একটি বস্তু আগে দেখা হয়েছে কিনা তা যাচাই করা।
ব্লুম ফিল্টারে বস্তু যুক্ত করা হচ্ছে
- অবজেক্ট যুক্ত করার জন্য আমরা হ্যাশ মান গণনা করি;
- ব্লুম ফিল্টার অবস্থায় নির্দিষ্ট বিট সেট করতে আমরা এই হ্যাশ-মানগুলি প্রয়োগ করি (হ্যাশ মান হল সেট করার জন্য বিটের অবস্থান)।
ব্লুম ফিল্টারে কোনো বস্তু আছে কিনা তা যাচাই করা হচ্ছে −
- অবজেক্ট যুক্ত করার জন্য আমরা হ্যাশ মান গণনা করি;
- পরবর্তীতে আমরা যাচাই করব যে এই হ্যাশ মানগুলির দ্বারা সূচীকৃত বিটগুলি ব্লুম ফিল্টার অবস্থায় সেট করা আছে কিনা৷
আমাদের মনে রাখতে হবে যে একটি বস্তুর জন্য হ্যাশ মান সরাসরি ব্লুম ফিল্টার অবস্থায় সংযুক্ত করা হয় না; প্রতিটি হ্যাশ ফাংশন সহজভাবে নির্ধারণ করে কোন বিট সেট বা যাচাই করতে হবে। উদাহরণস্বরূপ:যদি শুধুমাত্র একটি হ্যাশ ফাংশন ব্যবহার করা হয়, শুধুমাত্র একটি বিট যাচাই বা চেক করা হয়।