在过去的几天里,我一直在研究Kolmogorov复杂性的多个来源,我只是无法理解基本原则。我知道它是对象的最短描述,但我读到你实际上无法计算它并且让我感到困惑。所以,如果有人能给我一个很好的简单解释,那将是非常有帮助的。
答案 0 :(得分:2)
您如何向某人描述您最喜欢的食物?
您可能会回答类似“第五街餐厅的炸玉米饼”之类的内容。但是等等,那些是软壳还是硬壳? “第五街”在哪个城市?他们现在服务的炸玉米饼,还是30年前刚开业的炸玉米饼?我们可以一直不断询问越来越多的此类问题,而您的玉米饼的描述将始终缺少一些小细节。
事实证明,完整描述自己喜欢的食物的唯一方法是描述炸玉米饼存在于宇宙的其他各个方面。
尽管您对此表示怀疑-您能够很好地描述炸玉米饼,以使您的同事为您订购炸玉米饼。实际上,有时您只是向他们发送了最基本的详细信息。 “ 2 5th st tacos plz”足够了,但是少了一点,他们可能会感到困惑。
您已将说明压缩为对同事执行外卖订单的最低要求。
您发短信的顺序就像算法,而您的同事就像计算机。您可以想象,每种算法都有最小的大小,当将其输入计算机时,将产生所需的输出。该算法的“大小”或“长度”是其相对的Kolmogorov复杂度,并且计算机在允许利用此属性的方式上都是相似的。
答案 1 :(得分:0)
我发现Wikipedia有一个很好的例子和草图来证明。
如果您可以实施function KolmogorovComplexity(string s)
,则可以使用它来编写显示的function GenerateComplexString()
。该程序的长度为7001401288,但它产生的字符串“compmlexity”为8000000000,这与Kolmogorov复杂性的定义相矛盾。
图灵的Halting problem可能更容易理解,但提到:
停止问题的不确定性也源于Kolmogorov复杂性不可计算的事实。