在使用信息论以简单方式证明整洁的组合陈述时,您最喜欢的示例是什么?
一些例子我能想到的都涉及到降低对本地解码的代码,如边界,在此纸:假设为一串二进制字符串的长度的Ñ它认为对于每个我,对于ķ 我不同双{ Ĵ 1,Ĵ 2 },ê 我 = X Ĵ 1 ⊕ X Ĵ 2。那么m在n中至少是指数的,其中指数线性地取决于k的平均比率
另一个(相关的)示例是布尔立方体上的等距不等式(请在您的答案中详细说明)。
你有更多好的例子吗?最好简短易懂。
在使用信息论以简单方式证明整洁的组合陈述时,您最喜欢的示例是什么?
一些例子我能想到的都涉及到降低对本地解码的代码,如边界,在此纸:假设为一串二进制字符串的长度的Ñ它认为对于每个我,对于ķ 我不同双{ Ĵ 1,Ĵ 2 },ê 我 = X Ĵ 1 ⊕ X Ĵ 2。那么m在n中至少是指数的,其中指数线性地取决于k的平均比率
另一个(相关的)示例是布尔立方体上的等距不等式(请在您的答案中详细说明)。
你有更多好的例子吗?最好简短易懂。
Answers:
Moser关于构造性Lovasz局部引理的证明。他基本上表明,在局部引理的条件下,可以想到的第二种简单的SAT算法。(第一个最简单的方法可能是尝试一个随机赋值直到一个可行。第二个最简单的方法是选择一个随机赋值,找到一个不满意的子句,让它满意,然后查看您破坏了哪些其他子句,递归并重复直到完成。)我所见过的证明,它在多项式时间内运行的证明也许是信息论最优雅的用法(或者是Kolmogorov复杂性,无论在这种情况下您想称什么)。
我最喜欢的这种类型的例子是Shearer引理的基于熵的证明。(我从Jaikumar Radhakrishnan的Entropy and Counting了解到了这一证明以及其他一些非常漂亮的证明。)
权利要求:假设有在点- [R 3已Ñ X上的不同突起ÿ Ž -平面,Ñ ÿ在不同突起X Ž -平面和Ñ ž不同凸起在X ÿ -平面。然后,Ñ 2 ≤ Ñ X Ñ ý Ñ ž。
证明:令是从n个点中随机选择的一个点。令p x,p y,p z分别表示其在y z,x z和x y平面上的投影。
在一方面,,ħ [ p X ] ≤ 日志Ñ X,ħ [ p ÿ ] ≤ 登录Ñ ÿ和ħ [ p ž ] ≤ 登录Ñ Ž,由熵的基本属性。
另一方面,我们有以及H [ p x ] = H [ y ] + H [ z | y ] H [ p y ] = H [ x ] + H [ z
皮蓬格的《组合理论中的信息理论方法》的两篇论文中包含了非常好的例子。J.梳 理论先生 A 23(1):99-104(1977)和布尔函数的熵和枚举。IEEE Transactions on Information Theory 45(6):2096-2100(1999)。实际上,皮蓬格(Pippenger)的几篇论文都通过熵/互信息的形式很好地证明了组合事实。另外,这两本书:Jukna,《极值组合及其在计算机科学中的应用》和Aigner,《组合搜索》也有一些很好的例子。我也喜欢Madiman等人的两篇论文。可加组合学中的信息论不等式,以及Terence Tao的熵和集估计(您可以在Google Scholar中找到它们)。希望能帮助到你。
另一个很好的例子是Terry Tao的Szemerédi图正则性引理的替代证明。他用信息论的观点证明了正则引理的强形式,这对于证明超图的正则引理非常有用。到目前为止,Tao的证明是关于超图正则性引理的最简洁的证明。
让我尝试从较高的角度解释这种信息理论的观点。
基本上有一个完整的课程专门讨论这个问题:
https://catalyst.uw.edu/workspace/anuprao/15415/86751
该课程仍在进行中。因此,在撰写本文时,并非所有说明都可用。此外,已经提到了该课程的一些示例。
Jiang,Li,Vitanyi 使用Kolmogorov复杂度的算法的平均情况分析。
“分析算法的平均情况复杂度是计算机科学中一个非常实际但非常困难的问题。在过去的几年中,我们证明了Kolmogorov复杂度是分析算法平均情况复杂度的重要工具。我们已经开发了不可压缩方法[7]。在本文中,我们使用几个简单的示例来进一步证明这种方法的强大功能和简单性。我们证明了对排序连续或并行Queueusort或Stacksort所需的堆栈(队列)的平均情况数的限制。
另请参见例如Kolmogorov复杂度和Heilbronn型三角问题。
这很简单,也很近似:10 9中有10 6个事物有多少组合,允许重复?正确的公式是
N =(10 6 + 10 9)!/(10 6!10 9!)〜= 2 11409189.141937481
但是,请想象一下如何给出指示,沿着十亿个水桶行进,沿途将一百万个大理石弹入水桶。将有〜10 9 “跳到下一个桶”指令和10 6 “放下大理石”指令。总信息是
log 2(N)〜= -10 6 log 2(10 6 /(10 6 + 10 9))-10 9 log 2(10 9 /(10 6 + 10 9))〜= 11409200.432742426
这是一种有趣但很不错的近似(对数)对数的好方法。我喜欢它,因为如果我忘记了如何进行组合运算,它会起作用。相当于说
(a + b)!/ 一种!b!〜=(a + b)(a + b) / a a b b
这就像使用斯特林的逼近,抵消和丢失一些东西。
Linial和Luria提供了一个很好的最新应用程序来为高维排列提供上限:http://www.cs.huji.ac.il/~nati/PAPERS/hd_permutations.pdf