COMP5270 Assignment 1 中文题解

来源: Assignment 1 (Marked) Solutions.pdf
主题: random subsets, randomized algorithms, balls into bins, empirical average via vertex sampling

这份作业是 short-answer assignment,官方答案本身很短。下面保留必要推导,把每一步为什么成立写清楚,但删掉和题解无关的复习建议、提交建议和重复铺垫。


Problem 1: 随机集合的两个概率

题目

从全集

\[ U=\{1,2,\dots,n\} \]

的所有 \(2^n\) 个子集中,独立且均匀随机地选择两个集合 \(S\)\(T\)。求:

  1. \(\Pr[S\subseteq T]\)
  2. \(\Pr[S\cup T=U]\)

题解

均匀随机选择一个子集的意思是:对每个元素 \(i\in U\),它是否进入该集合可以看成一次独立的 Bernoulli\((1/2)\) 选择。

因为 \(S\)\(T\) 是独立选出的,所以对固定元素 \(i\),它在 \((S,T)\) 中的状态一共有四种,并且等概率:

状态 含义 概率
\(00\) \(i\notin S,\ i\notin T\) \(1/4\)
\(01\) \(i\notin S,\ i\in T\) \(1/4\)
\(10\) \(i\in S,\ i\notin T\) \(1/4\)
\(11\) \(i\in S,\ i\in T\) \(1/4\)

(a) 计算 \(\Pr[S\subseteq T]\)

\(S\subseteq T\) 的意思是:

只要某个元素在 \(S\) 里,它就必须也在 \(T\) 里。

对一个固定元素 \(i\) 来说,唯一会破坏 \(S\subseteq T\) 的状态是

\[ 10, \]

也就是 \(i\in S\)\(i\notin T\)

因此单个元素不破坏条件的概率是

\[ 1-\frac14=\frac34. \]

不同元素之间的选择相互独立,所以 \(n\) 个元素全部不破坏条件的概率是

\[ \Pr[S\subseteq T] =\left(\frac34\right)^n. \]

(b) 计算 \(\Pr[S\cup T=U]\)

\(S\cup T=U\) 的意思是:

每个元素至少出现在 \(S\)\(T\) 中的一个集合里。

对固定元素 \(i\) 来说,唯一会破坏这个条件的状态是

\[ 00, \]

也就是 \(i\notin S\)\(i\notin T\)

因此单个元素满足 union 条件的概率也是

\[ 1-\frac14=\frac34. \]

同样由元素之间的独立性,

\[ \Pr[S\cup T=U] =\left(\frac34\right)^n. \]

结论

\[ \boxed{\Pr[S\subseteq T]=\left(\frac34\right)^n} \]

\[ \boxed{\Pr[S\cup T=U]=\left(\frac34\right)^n} \]

本题用到的知识点

  • 均匀随机子集:每个元素独立地以概率 \(1/2\) 被选入集合。
  • 独立性:\(S\)\(T\) 独立,且不同元素的选择也可以逐元素相乘。
  • 按元素分解事件:把集合事件拆成每个元素的局部状态。
  • 补集思想:先找唯一的坏状态,再用 \(1-\Pr[\text{bad}]\)
  • 乘法原理:\(n\) 个独立元素都满足条件时,概率为单元素概率的 \(n\) 次方。

Problem 2: 极小错误概率是否意味着算法必然正确

题目

算法 \(A\) 对每个输入 \(x\) 使用 \(r\) 个随机 bit。若它输出错误答案的概率至多为

\[ \frac{9}{10}\cdot 2^{-r}, \]

问:算法是否在所有输入上都以概率 \(1\) 正确?

题解

答案是 是的

固定任意输入 \(x\)。算法只使用 \(r\) 个随机 bit,所以它的随机性完全由长度为 \(r\) 的 bit string 决定。

长度为 \(r\) 的 bit string 一共有

\[ 2^r \]

种,并且每一种出现的概率都是

\[ 2^{-r}. \]

设在输入 \(x\) 上,会导致错误输出的随机串数量为 \(b_x\)。因为 \(b_x\) 是随机串的个数,所以它必须是非负整数。

算法在输入 \(x\) 上的错误概率就是

\[ \Pr[\text{error on }x] =\frac{b_x}{2^r}. \]

题目给出

\[ \frac{b_x}{2^r} \le \frac{9}{10}\cdot 2^{-r}. \]

两边同时乘以 \(2^r\),得到

\[ b_x\le \frac{9}{10}. \]

\(b_x\) 是非负整数,所以只能是

\[ b_x=0. \]

这说明:在这个固定输入 \(x\) 上,没有任何随机串会让算法输出错误答案。

由于 \(x\) 是任意输入,所以这个结论对所有输入都成立。因此算法在所有输入上都以概率 \(1\) 正确。

结论

\[ \boxed{\text{Yes. The algorithm is correct on every input with probability }1.} \]

本题用到的知识点

  • 随机 bit 的样本空间大小:\(r\) 个随机 bit 对应 \(2^r\) 个等概率随机串。
  • 离散概率粒度:错误概率必须是 \(2^{-r}\) 的整数倍。
  • 整数约束:若非负整数 \(b_x\le 0.9\),则 \(b_x=0\)
  • 固定输入分析:先固定任意 \(x\),证明该输入上永不出错,再推广到所有输入。

Problem 3: 最大装载量期望至少为 4 时,\(m\) 需要多大

题目

\(m\) 个球独立且均匀地扔进 \(n\) 个箱子。问:为了让 expected maximum load 至少为 \(4\)\(m\)\(\Omega(\cdot)\) 记号下至少需要多大?

官方答案是:

\[ m=\Omega(n^{3/4}). \]

下面解释这个量级为什么是 \(n^{3/4}\)

题解

\(L\) 表示最大装载量:

\[ L=\max_{1\le j\le n}\{\text{第 }j\text{ 个箱子里的球数}\}. \]

\(L\ge 4\),说明至少有一个箱子收到了至少 \(4\) 个球。为了估计这个现象什么时候开始出现,可以先看“四个指定球落进同一个箱子”的概率。

任取 \(4\) 个球。第一个球落到哪里不重要;之后另外 \(3\) 个球都必须落到第一个球所在的同一个箱子。每个球命中该箱子的概率是 \(1/n\),所以这 \(4\) 个球同箱的概率是

\[ \frac{1}{n^3}. \]

\(m\) 个球中选出 \(4\) 个球有

\[ \binom{m}{4} \]

种选择。因此“四球同箱组”的期望数量大约是

\[ \binom{m}{4}\frac{1}{n^3} =\Theta\left(\frac{m^4}{n^3}\right). \]

如果

\[ \frac{m^4}{n^3}=o(1), \]

那么四球同箱现象的期望数量趋于 \(0\)。更严格地说,对任意 \(t\ge4\)

\[ \Pr[L\ge t] \le n\binom{m}{t}\left(\frac1n\right)^t =O\left(\frac{m^t}{n^{t-1}}\right), \]

因为可以先选一个箱子,再选 \(t\) 个球要求它们全部落入该箱子。于是

\[ \mathbb E[L] =\sum_{t\ge1}\Pr[L\ge t] \le 3+\sum_{t\ge4}O\left(\frac{m^t}{n^{t-1}}\right). \]

\(m=o(n^{3/4})\) 时,右侧从 \(t=4\) 开始的尾和是 \(o(1)\),所以

\[ \mathbb E[L]\le 3+o(1), \]

不可能达到至少 \(4\)

因此,要让最大装载量的期望达到 \(4\),至少需要让四球碰撞数量达到常数量级:

\[ \frac{m^4}{n^3}=\Omega(1). \]

解这个不等式:

\[ m^4=\Omega(n^3), \]

所以

\[ m=\Omega(n^{3/4}). \]

也可以把它理解成 birthday paradox 的高阶版本:

  • 2 个球撞进同一个箱子的阈值是 \(n^{1/2}\)
  • 3 个球撞进同一个箱子的阈值是 \(n^{2/3}\)
  • 4 个球撞进同一个箱子的阈值是 \(n^{3/4}\)

结论

\[ \boxed{m=\Omega(n^{3/4})} \]

本题用到的知识点

  • Balls into bins 模型:\(m\) 个球独立均匀投进 \(n\) 个箱子。
  • Maximum load:最大装载量至少为 \(4\) 等价于出现某个箱子有至少 \(4\) 个球。
  • 高阶碰撞计数:用 \(4\) 个球同箱的期望数量判断阈值。
  • 期望线性性:把所有 \(4\)-tuple 的碰撞 indicator 加起来。
  • 渐近记号:由 \(\frac{m^4}{n^3}=\Omega(1)\) 推出 \(m=\Omega(n^{3/4})\)

Problem 4: 星形图上的平均度采样算法

Figure 1 The star graph on n = 10 vertices..png

题目

\(G^\star\)\(n\) 个顶点的 star graph:

  • 一个中心点连接所有其他 \(n-1\) 个点;
  • 其他 \(n-1\) 个点是 leaves;
  • leaves 之间没有边。

算法做的是 vertex sampling:

  1. 均匀随机抽取 \(k\) 个顶点 \(v_1,\dots,v_k\)
  2. 查询这些顶点的度数 \(d_{v_1},\dots,d_{v_k}\)
  3. 输出经验平均值

\[ \hat d=\frac1k\sum_{i=1}^k d_{v_i}. \]

题目要求分析该算法在 star graph 上的行为。

(a) 星形图的平均度数

Star graph 有

\[ m=n-1 \]

条边。由 Handshaking Lemma,所有顶点度数之和是

\[ 2m=2(n-1). \]

因此平均度数是

\[ \bar d(G^\star) =\frac{2(n-1)}{n} =2-\frac2n. \]

所以

\[ \boxed{\bar d(G^\star)=2-\frac2n}. \]

(b) 如果抽到的 \(k\) 个顶点全是 leaves,算法输出什么

每个 leaf 的度数都是 \(1\)

如果 \(k\) 次抽样全部抽到 leaves,那么算法看到的度数序列是

\[ 1,1,\dots,1. \]

因此经验平均值是

\[ \hat d =\frac1k\sum_{i=1}^k 1 =1. \]

所以

\[ \boxed{\hat d=1}. \]

(c) \(k\) 次抽样全部抽到 leaves 的概率

Star graph 一共有 \(n\) 个顶点,其中 \(n-1\) 个是 leaves。

一次均匀随机顶点查询抽到 leaf 的概率是

\[ \frac{n-1}{n} =1-\frac1n. \]

\(k\) 次抽样相互独立,所以全部抽到 leaves 的概率是

\[ \left(\frac{n-1}{n}\right)^k =\left(1-\frac1n\right)^k. \]

所以

\[ \boxed{\Pr[\text{all }k\text{ samples are leaves}] =\left(1-\frac1n\right)^k}. \]

(d) 为了以至少 99% 概率得到 1.1 倍以内估计,\(k\) 需要多大

真实平均度数是

\[ \bar d(G^\star)=2-\frac2n. \]

\(n\ge 3\) 时,

\[ 1 < \frac{2-\frac2n}{1.1}. \]

所以如果算法输出 \(\hat d=1\),它就低于真实平均度数的 \(1/1.1\) 倍,不是 within a factor \(1.1\) 的好估计。

也就是说,只要 \(k\) 次抽样全部抽到 leaves,算法就会失败。

由 (c),这个失败事件的概率是

\[ \left(1-\frac1n\right)^k. \]

要让算法在每个图上都以至少 \(99\%\) 的概率成功,在 star graph 这个输入上也必须成功。因此失败概率至少要被压到常数 \(0.01\) 以下:

\[ \left(1-\frac1n\right)^k\le 0.01. \]

这个不等式说明 \(k\) 必须和 \(n\) 同阶。更具体地,用近似

\[ \left(1-\frac1n\right)^k\approx e^{-k/n}, \]

若要 \(e^{-k/n}\le 0.01\),就需要

\[ k\ge n\ln 100. \]

因此在 big-Omega 记号下,

\[ k=\Omega(n). \]

官方答案也可以用 Bernoulli inequality 表达同样的必要性:

\[ \left(1-\frac1n\right)^k \ge 1-\frac{k}{n}. \]

如果 \(k=o(n)\),那么 \(1-k/n\to 1\),算法会以很高概率只看到 leaves,从而输出错误的估计。

结论

\[ \boxed{\bar d(G^\star)=2-\frac2n} \]

\[ \boxed{\hat d=1\text{ if all sampled vertices are leaves}} \]

\[ \boxed{\Pr[\text{all sampled vertices are leaves}] =\left(1-\frac1n\right)^k} \]

\[ \boxed{k=\Omega(n)} \]

本题用到的知识点

  • Star graph 结构:中心点度数 \(n-1\),每个 leaf 度数 \(1\)
  • Handshaking Lemma:\(\sum_v d_v=2|E|\)
  • 平均度数:\(\bar d(G)=2|E|/|V|\)
  • 独立重复采样:\(k\) 次都抽到 leaf 的概率是单次概率的 \(k\) 次方。
  • 近似公式:\((1-1/n)^k\approx e^{-k/n}\)
  • 最坏情况输入分析:为了保证 “on every graph” 成功,star graph 这种反例也必须满足成功概率要求。