r个桶数量的DGIM算法的错误率上限

r个桶数量的DGIM算法的错误率上限

当允许具有相同大小的桶的数目是1或者2时,错误率上限为50%

故对相同大小的桶的数目,令其为 r-1 或者 r ,对于最大桶和最小桶则数目可以为1~r间的任意一个数。

桶合并规则为:如果大小为 2 j 2^j 的桶的数目为r+1,则将最左边的两个桶合并为一个 2 j + 1 2^{j+1} 大小的桶,如果可以继续合并则继续合并直至不能合并。

故当最左边的桶中仅有一个1在查询范围内时,错误率相对来说是最大的,此时查询结果被高估。假设最左边的桶大小为 2 j 2^j ,则真实的查询结果至少 (这里用"至少"是指这里假设大小为 2 j 2^j 的桶仅有一个,且右边的桶数量都是r-1,实际上可以有更多,这样真实查询结果会更大,错误率将更低,为了计算上限在此取最少) 应该是:

1 + ( r 1 ) ( 2 j 1 + 2 j 2 + . . . + 1 ) = 1 + ( r 1 ) ( 2 j 1 ) 1+(r-1)(2^{j-1}+2^{j-2}+...+1)=1+(r-1)(2^j-1)

由于在此处高估了 2 j 1 1 2^{j-1}-1 个,

错误率为: 2 j 1 1 1 + ( r 1 ) ( 2 j 1 ) < = 2 j 1 1 ( r 1 ) ( 2 j 1 ) = 1 r 1 \frac{2^{j-1}-1}{1+(r-1)(2^j-1)}<=\frac{2^{j-1}-1}{(r-1)(2^j-1)}=\frac{1}{r-1}

故错误率上界为 1 r 1 \frac{1}{r-1} ,因此只要令r足够大,便可以将错误率降至够低,复杂度会增大。

猜你喜欢

转载自blog.csdn.net/dingdingdodo/article/details/106689775