BIT大数据应用算法2022年期末考试A卷解析
北京理工大学2022年大数据应用算法期末考试A卷
一、请简要回答为什么需要设计可合并的 \(Sketch\) 算法?可合并的 \(Sketch\) 算法主要是用于什么场景?
解答:
二、给定数据流 \(D=(1,2,5,1,4,2,3,3,2,4,5,2)\),假设 \(k=3\),请详细描述 \(Misra‐Gries\) 算法在该数据流上的运行步骤。
解答:设 \(T\) 值为第 \(T\) 个元素到达的时间,\(S\) 为算法生成的计数器集合,其中元素 \(a:b\) 代表类别为 \(a\) 的元素计数为 \(b\) 个。
\(~~~~~~~~~\) \(T=1\),\(S=\left\{1:1\right\}\)。
\(~~~~~~~~~\) \(T=2\),\(S=\left\{1:1,2:1\right\}\)。
\(~~~~~~~~~\) \(T=3\),\(S=\left\{1:1,2:1,5:1\right\}\)。
\(~~~~~~~~~\) \(T=4\),\(S=\left\{1:2,2:1,5:1\right\}\)。
\(~~~~~~~~~\) \(T=5\),\(S=\left\{1:1\right\}\)。
\(~~~~~~~~~\) \(T=6\),\(S=\left\{1:1,2:1\right\}\)。
\(~~~~~~~~~\) \(T=7\),\(S=\left\{1:1,2:1,3:1\right\}\)。
\(~~~~~~~~~\) \(T=8\),\(S=\left\{1:1,2:1,3:2\right\}\)。
\(~~~~~~~~~\) \(T=9\),\(S=\left\{1:1,2:2,3:2\right\}\)。
\(~~~~~~~~~\) \(T=10\),\(S=\left\{2:1,3:1\right\}\)。
\(~~~~~~~~~\) \(T=11\),\(S=\left\{2:1,3:1,5:1\right\}\)。
\(~~~~~~~~~\) \(T=12\),\(S=\left\{2:2,3:1,5:1\right\}\)。
三、请解释 \(Morris\) 计数算法的基本原理?它为什么能够做到只用 \(O(loglogn)\)的空间来对 \(n\) 个数据进行计数?
解答:\(Morris\) 计数器是用概率计数法,初始值设 \(s\) 为 \(0\)。然后每个数到来时,以 \(2^{-s}\) 的概率在计数器上加1,最后以 \(2^{s}-1\) 作为估计值。因为我们有 \(E[2^s-1]=n\) 成立,那么 \(s=O(logn)\),所以记录 \(s\) 只需要 \(O(loglogn)\) 的空间。
四、\(MinHash\) 算法有哪三种实现方式?它们各自有哪些优缺点?
解答:
五、已知指数分布的概率密度函数为\(\begin{equation} f(x)=\left\{ \begin{array}{cl} ne^{-nx} & x>=0 \\ 0 & x< 0 \\ \end{array} \right. \end{equation}\),请证明指数分布的无记忆性。也即证明\(\forall t,y>0,Pr[x-y>t|x>y]=Pr[x>t]\)。
解答:证明如下:
六、 给定一个包含 \(n\) 个不同元素的集合 \(A\) ,请证明在采用 \(k‐mins\ MinHash\) 算法来构造集合 \(A\) 的 \(k‐mins\) \(sketch\) 的过程中, \(sketch\) 发生更新的期望次数为\(O(klnn)\) 。
解答:
七、 给定集合 \(A={a, b, c, d, e, h}\), \(B={a, c, e, f, g, m, n}\)。假设采用 \(k‐mins\) \(MinHash\) 算法来处理集合 \(A\) 与 \(B\)。令 \(k=4\),得到集合 \(A\) 和集合 \(B\) 的 \(k‐mins\) \(sketch\) 分别为 \(S(A)=( 0.22, 0.11, 0.14, 0.22)\), \(S(B)=( 0.18, 0.24, 0.14, 0.35)\)。
- 请计算 \(A\) 和 \(B\) 的 \(Jaccard\) 相似性。
- 请根据 \(S(A)\) 和 \(S(B)\) 来计算集合 \(A\) 与 \(B\) 合并后的 \(k‐mins sketch\),即 \(S(A∪B)\)。
- 请基于 \(S(A∪B)\) 估计集合 \(A\) 和集合 \(B\) 的 \(Jaccard\) 相似性。
- 在该问题中,基于 \(k‐mins\) \(MinHash\) 算法的估计方差为多少?
解答:
1. \(Jaccard(A,B) = \dfrac{|A∩B|}{|A∪B|} = \dfrac{|a,c,e|}{|a,b,c,d,g,h,m,n|} = \dfrac{3}{10}\)
2.
3.
4.
八、 给定一个有向图 \(G=(V, E)\),以及一个节点 \(v\)。在图 \(G\) 中可以到达节点 \(v\) 的集合定义为 \(Reach^{‐1}(v)=\left\{u∈V|u 在图 G 中可达 v\right\}\)。对于集合 \(Reach^{‐1}(v)\),我们可以采用 \(k‐mins\) \(MinHash\) 算法来生成该集合的一个 \(k‐mins\) \(sketch\),记为 \(S(v)\)。
- 请设计一个算法计算图中所有节点的 \(k‐mins sketch\),即对于任意的 \(v\) 计算所有的 \(S(v)\)。
- 请描述如何用 \(S(u)\) 和 \(S(v)\) 来计算\(| Reach^{‐1}(v)∪Reach^{‐1}(u)|\)?
解答:

浙公网安备 33010602011771号