কম্পিউটার টিউটোরিয়াল

কাউন্টিং ব্লুম ফিল্টার (Counting Bloom Filter)

মৌলিক ধারণা (Basic Concept)

একটি কাউন্টিং ব্লুম ফিল্টার হলো ব্লুম ফিল্টারের একটি জেনারেলাইজড ডেটা স্ট্রাকচার যা বাস্তবায়িত হয় যাচাই করতে একটি দেওয়া এলিমেন্টের কাউন্ট নম্বর একটি দেওয়া থ্রেশহোল্ড চেয়ে কম কিনা যখন এলিমেন্টের একটি সিকোয়েন্স দেওয়া থাকে। জেনারেলাইজড ফর্ম হিসেবে, ব্লুম ফিল্টারের মতো ফолস পজিটিভ ম্যাচের সম্ভাবনা আছে, কিন্তু ফোলস 네가টিভের কোনো চান্স নেই – অন্য কথায়, একটি কোয়েরি রিটার্ন করে হয় "পসিবলি হাইয়ার অর ইকুয়াল দ্যান থ্রেশহোল্ড" অথবা "ডেফিনিটলি লেস দ্যান থ্রেশহোল্ড"।

অ্যালগরিদম বর্ণনা (Algorithm description)

  • কাউন্টিং ব্লুম ফিল্টারের অধীনে ব্যবহৃত অধিকাংশ প্যারামিটার, ব্লুম ফিল্টারের সাথে সেম ডিফাইন করা হয়, যেন n, k। m ডেনোট করে কাউন্টিং ব্লুম ফিল্টারের কাউন্টারের সংখ্যা, যা ব্লুম ফিল্টারের m বিটের এক্সপানশন।
  • একটি খালি কাউন্টিং ব্লুম ফিল্টার সেট করা হয় m কাউন্টার হিসেবে, সব ০-তে ইনিশিয়ালাইজড।
  • ব্লুম ফিল্টারের মতো, সেখানে k ভিন্ন হ্যাশ ফাংশনও অবশ্যই ডিফাইন করা থাকতে হবে, প্রতিটি যা রেসপอนসিবল কিছু সেট এলিমেন্টকে m কাউন্টার অ্যারে পজিশনের একটিতে ম্যাপ বা হ্যাশ করতে, একটি ইউনিফর্ম র‍্যান্ডম ডিস্ট্রিবিউশন তৈরি করে। এটিও সেম যে k একটি কনস্ট্যান্ট, m-র চেয়ে অনেক কম, যা এলিমেন্টের সংখ্যার সাথে প্রপোরশনাল যেগুলো অ্যাপেন্ড করা হবে।
  • ব্লুম ফিল্টারের মূল জেনারেলাইজেশন হলো একটি এলিমেন্ট অ্যাপেন্ড করা। একটি এলিমেন্ট অ্যাপেন্ড করতে, এটিকে k হ্যাশ ফাংশনের প্রতিটিতে ফিড করে k অ্যারে পজিশন পাওয়া যায় এবং এই সকল পজিশনে কাউন্টার ১ বাড়ানো হয়।
  • একটি এলিমেন্টের জন্য থ্রেশহোল্ড θ সহ কোয়েরি করতে (যাচাই করতে এলিমেন্টের কাউন্ট নম্বর θ চেয়ে কম কিনা), এটিকে k হ্যাশ ফাংশনের প্রতিটিতে ফিড করে k কাউন্টার পজিশন পাওয়া যায়।
  • যদি এই পজিশনগুলোর যেকোনো কাউন্টার θ চেয়ে ছোট হয়, এলিমেন্টের কাউন্ট নম্বর নিঃসন্দেহে θ চেয়ে ছোট – যদি এটি হাইয়ার এবং ইকুয়াল হত, তবে সকল সংশ্লিষ্ট কাউন্টার হাইয়ার বা ইকুয়াল হত θ-তে।
  • যদি সব হাইয়ার বা ইকুয়াল হয় θ-তে, তবে হয় কাউন্ট আসলেও হাইয়ার বা ইকুয়াল θ-তে, অথবা কাউন্টারগুলো চান্সে হাইয়ার বা ইকুয়াল হয়ে গেছে θ-তে।
  • যদি সব হাইয়ার বা ইকুয়াল হয় θ-তে এমনকি কাউন্ট θ চেয়ে কম থাকলে, এই পরিস্থিতি ফোলস পজিটিভ হিসেবে ডিফাইন করা হয়। ব্লুম ফিল্টারের মতো, এটিও মিনিমাইজ করা উচিত।
  1. ডেটা স্ট্রাকচারে ক্যাশ মিস কাউন্টিং

  2. পাইথনে filter() ফাংশন কী এবং কীভাবে ব্যবহার করবেন

  3. পাইথনে filter() ফাংশন – সিকোয়েন্স ফিল্টারিং

  4. উইন্ডোজ ১০-এ SmartScreen ফিল্টার ডিজেবল করার নিরাপদ গাইড