Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การวัดประสิทธิภาพ


มีตัวชี้วัดประสิทธิภาพสามตัวสำหรับตัวกรอง Bloom ที่สามารถแลกเปลี่ยนได้:การคำนวณหรือเวลาดำเนินการ (ตรงกับจำนวน k ของฟังก์ชันแฮช) ขนาดของตัวกรอง (ตรงกับจำนวน m ของบิต) และความน่าจะเป็นของข้อผิดพลาด (สอดคล้องกับ อัตราบวกลวง

f =(1 - p)k )

ตัวกรอง Bloom (BF) มีความทนทานต่อข้อผิดพลาดเพื่อเพิ่มประสิทธิภาพการค้นหาและประสิทธิภาพของพื้นที่ ตัวกรอง Bloom ส่งคืนค่าจริงหรือเท็จ ดังนั้น ผลลัพธ์ของตัวกรอง Bloom จึงตกอยู่ภายใต้คลาสใดคลาสหนึ่งต่อไปนี้:true positive, false positive, true negative และ false negative จำนวนสูงสุดของตัวกรอง Bloom ประกอบด้วยผลบวกปลอม ผลบวกที่ผิดพลาดและผลลบเท็จทำให้เกิดค่าใช้จ่ายในระบบ ตัวกรอง Bloom ใช้อาร์เรย์เพื่อเก็บข้อมูลขององค์ประกอบ ผลบวกลวงถูกกำหนดดังนี้:ถ้าตัวกรอง Bloom คืนค่าจริงเมื่อเก็บองค์ประกอบ ในทำนองเดียวกัน ค่าลบเท็จถูกกำหนดดังนี้:ตัวกรอง Bloom คืนค่าเท็จเมื่อถือองค์ประกอบ ดังนั้น ตัวกรอง Bloom จึงเป็นของโครงสร้างข้อมูลความน่าจะเป็น

ขนาดตัวกรองบลูมและจำนวนฟังก์ชันแฮช

เราเข้าใจดีว่าหากขนาดของฟิลเตอร์บลูมมีขนาดเล็กเกินไป ทันทีที่ฟิลด์บิตทั้งหมดจะกลายเป็น '1' จากนั้นฟิลเตอร์บลูมของเราจะส่งกลับ 'ค่าบวกเท็จ' สำหรับทุกค่าที่ป้อน ดังนั้น ขนาดของฟิลเตอร์กรองแสงจึงเป็นการตัดสินใจที่สำคัญหรือสำคัญมาก ตัวกรองที่ใหญ่ขึ้นจะประกอบด้วยผลบวกลวงน้อยลง และตัวกรองที่เล็กกว่าก็กรองด้วย

ดังนั้น เราสามารถสรุปได้ว่าขนาดของตัวกรองการบานนั้นขึ้นอยู่กับ 'อัตราความผิดพลาดเชิงบวกที่ผิดพลาด' โดยสิ้นเชิง

พารามิเตอร์ที่สำคัญอีกประการหนึ่งคือการกำหนดจำนวนฟังก์ชันแฮชที่เราจะใช้ ยิ่งเราใช้ฟังก์ชันแฮชมากเท่าไหร่ ฟิลเตอร์กรองแสงก็จะยิ่งช้าลงเท่านั้น และตัวกรองก็จะเต็มเร็วขึ้น อย่างไรก็ตาม หากเรามีน้อยเกินไป เราอาจต้องทนทุกข์จากผลบวกที่ผิดพลาดมากมาย

เราสามารถคำนวณอัตราความผิดพลาดเชิงบวก p ตามขนาดของตัวกรอง m จำนวนฟังก์ชันแฮช k และจำนวนขององค์ประกอบที่แทรก n ด้วยสูตร

p≈(1-e (-kn/m) ) k

จริงๆ แล้วส่วนใหญ่เราต้องกำหนดว่า m กับ k ของเราคืออะไร ดังนั้น หากเราตั้งค่าหรือแก้ไขค่าความทนทานต่อข้อผิดพลาด p และจำนวนองค์ประกอบ n ด้วยตัวเอง เราก็สามารถใช้สูตรต่อไปนี้เพื่อคำนวณพารามิเตอร์เหล่านี้ได้

m=(-n ln p)/(ln 2) 2

k=(m/n)*(ln 2)