【学习笔记】通讯问题

\(a=b\) 问题

给定通讯双方各自 \(n\) 位二进制数 \(a\)\(b\) ,判断 \(a=b\) 是否成立。可以认为通讯的复杂度非常大,一个bit需要 \(\mathcal O(t)\)

随机算法

算法描述

利用哈希,选定模数 \(p\in[2n,4n]\),随机基数 \(r\in[2,p-1]\) ,比较 \(a\)\(b\) 的哈希值。

\(f(r)=\sum\limits_{i=0}^{n-1}a_ir^i\mod p\)\(g(r)=\sum\limits_{i=0}^{n-1}b_ir^i\mod p\)

随机 \(k\) 次并判断 \(f(r)=g(r)\) 是否成立,若有一次不成立则 \(a=b\) ,否则 \(a\neq b\)

其中由于 \(p\in[2n,4n]\) ,单次交换信息 \(r\)\(f(r)\)\(\mathcal O(t\log n)\) 的,总复杂度 \(\mathcal O(kt\log n)\) ,或者说传输需要 \(2k\log 4n\) 个bit。

算法正确性

下面考虑其正确性

  • 如果 \(a=b\) ,那么 \(f(r)=g(r)\) 恒成立。
  • \(a\neq b\) 时,由代数基本定理,\(f(r)=g(r)\) 的根至多 \(n-1\) 个,因此选择 \(r\) 时满足 \(f(r)\neq g(r)\) 的概率至少有 \(\dfrac{n-1}{p}>\dfrac{1}{2}\) ,程序错误概率低于 \(\dfrac{1}{2^k}\) ,可以接受。

这个算法还是比较简单的,哈希算法的简单运用。

非随机算法

不用随机数的算法最优情况下是 \(\mathcal O(tn)\) 的。

而这一结论实际上是这个问题的核心。证明方法是姚期智教授给出的。

传输一次数据实际上意味着一次决策,我们以此来构建一颗决策树,叶子节点就是结果。

对每个叶子节点,我们定义 \(Rt\) 为可以到达这个叶子节点的有序数对 \((a,b)\) 所组成的集合

单色长方形

这是这个证明中比较核心的一个思想。

如下定义长方形:\(R\subseteq\{0,1\}^n\times\{0,1\}^n\) 是一个长方形当且仅当存在 \(A,B\subseteq\{0,1\}^n\) 满足 \(A\times B=R\)

而我们对于一个决策树上的节点,我们可以发现每次决策实际上都是对于 \(A\) 来说 \(b\) 的范围缩小或者对于 \(B\) 来说 \(a\) 的范围缩小,因此在每个节点上,实际上就对应了一个长方形。

而在这个长方形内的所有可能 \((a,b)\) 的结果都一致,也就是 \(a=b\) 都成立或者 \(a\neq b\) 都成立,那么我们就可以将这个长方形称为单色长方形,这个节点也就可以作为叶子节点(因为结果确定)。


回到原来的证明,对于所有的 \(x\in\{0,1\}^n\),我们可以发现每个 \((x,x)\) 所在的单色长方形只能有它自己,因为假设这个长方形内有 \((x,x),(y,y)\) 存在,那么 \((x,y),(y,x)\) 也一定存在,这与其单色性矛盾。

这就意味着叶子节点的数量至少为 \(2^n+1\) ,即 \(2^n\) 个结果为正确(\(a=b\))的节点,和至少一个结果为错误(\(a\neq b\))的节点。

因此可以得到这颗决策树的树高至少为 \(\log2^n+1>n\)

因此树高至少为 \(n+1\),传输信息至少需要 \(n+1\) 个bit。事实上满足这个条件的算法是平凡的。

应该说姚期智教授在这个问题上的主要成就就是对非随机算法复杂度下界的证明,而非随机算法。

posted @ 2023-07-13 10:16  思考人生中…  阅读(35)  评论(0编辑  收藏  举报