柯尔莫哥洛夫复杂性
柯尔莫哥洛夫复杂度于1960年代由美国数学家
格里戈里.蔡廷、俄罗斯数学家安德烈.科尔莫哥洛夫和计算机科学家雷.索罗门诺夫分别独立发现,因此也称为柯尔莫哥洛夫﹣索罗门诺夫﹣蔡廷复杂度。
2、复杂很复杂。
复杂是一个复杂议题,定义有几十种,但科学家至今还没到一个公认定义。每个定义基于不同视角,各有道理。
比如,复杂度是根据量来定义的。对比碱基对的数量,人类基因组大约有30亿个碱基对,酵母有2000万个碱基对,所以人类比酵母复杂250倍。
例如,根据信息熵来定义复杂性。一个信息,如果克服越大不确定性,信息熵越大,信息量就越大,就越复杂,信息价值也就越大。反之,则相反。
例如,根据逻辑层次来定义复杂性。层次越多,就越复杂;层次越少,就越简单。例如,多细
胞生命比单细胞生命逻辑层次更多,就更复杂。
前瞻性思维也指一种定义方式。如果系统机制可以用有限的简单规则来描述,即使表面复杂,也是简单的;如果不能,就像一个复杂的适应系统,内部和表面一样复杂,真的很复杂。
诸如此类,每一种定义都能反映复杂性某个侧面,都有优点和缺点。柯尔莫哥洛夫复杂度也
这是一个可供参考的定义和测量方法。
今天的词条介绍安德雷·柯尔莫哥洛夫的复杂性,供读者参考,以提高对复杂现象的把握能力。
柯尔莫哥洛夫复杂性 3
A :
1、理解涵义。
柯尔莫哥洛夫复杂度定义为,用生成字符串最短算法长度,来表征字符串复杂度。接下来,我们来看3个实例,以增强感性理解。
字符串1:
字符串2:2,3,5,8,13,21,34,55
字符串3:35j8o1d93id78mcdkOjiwwuetcn
读者可以这样想:如果要用最短的描述,你会怎么描述上面的三串?
像上面这样,老老实实把每一个字符读出来或者写下来,自然是一种描述,但未必是最简短描述。
例如,第1个字符串,读友们很容易观察出规律:01重复出现。我们可以描述为:01重复出现12次。如是描述比把24个字符逐一描述要简
短。
例如,第2个字符串,规律相对难一些,但也不难发现:从第3个数字开始起,都是前两个数字之和。如是描述比把8个字符逐一描述要简短。
但第3个字符串并没有这么规律,事实上,这字符串长度1是什么意思
在键盘上随机输入了27个字符。如果要描述这27个字,只能老老实实的念出来或者一个个写下来。
如果用程序代码来实现就是:输出“35j8o1d93id78mcdkOjiwwuetcn”。这看起来有点愚笨,不过没有办法,只能这么做。
相反,字符串1和字符串2程序代码看起来比较聪明。字符串1程序代码是:输出“12个01’”;字符串2程序代码是:输出“ N ( i )”( i =1-8,N1=N2=2, N ( j )= N ( j -1)+ N ( j ), j =3-8)。
不难发现,这两个程序代码都比字符串本身要短,尤其是在字符串规则不变,字符串数量增加的情况下。
例如,不是12个“01”,而是12万个“01”,代码只要把12改成12万就可以,代码增加长度可以忽略不计。与之形成鲜明对比的是,逐一写下来长度会暴涨,字符串2也类似。
比如定义了安德雷·柯尔莫哥洛夫的复杂度之后,我们可以描述字符串1和字符串2的复杂度相对较低,因为我们可以到比字符串本身更简单的描述方式。
相反,字符串3复杂度比较高,因为不到比字
符串本身更简单描述。你可以描述它是“随便打出来的字符串”,但这种描述不精准、不符合要求,因为“随便打出来的字符串”未必就是这个字符串,可能是其它字符串。
简而言之,安德雷·柯尔莫哥洛夫的复杂性理论,也称为算法信息论,假设字符串与生成它们的最短计算机程序长度一样复杂。对于每个字符串,出可以生成该字符串最短的算法或程序。
如果这个程序代码长度很短,就说字符串“几乎没有算法内容”,较为简单;相反,如果需要一个长程序来生成字符串,那么“有更多算法内容”,较为复杂。一言以蔽之,对应生成该字符串最短程序长度越长,字符串复杂度就越高。
2、识别极限。
在了解了安德雷·柯尔莫哥洛夫的复杂性并回顾了三个字符串描述过程后,读者可能会产生一个疑问:有没有一种算法可以自动计算字符串安德雷·柯尔莫哥洛夫的复杂性?
如果答案是肯定的,对于任何一个字符串,我们都知道它有多复杂。有没有规则可以简化字符串的描述,甚至知道规则是什么。
不过,答案是否定的。相关数学定理告诉我们,柯尔莫哥洛夫复杂度具有不可计算性。我们无法设计出一个自动算法,计算出一个字符串柯尔莫哥洛夫复杂度。
意思是,虽然我们可以编写程序让计算机在字符串中到某些模式,但不到最佳模式;可能会到一些输出特定模式短程序,但仍可能存在更短程序,对此我们永远无法确定。
《安德雷·柯尔莫哥洛夫》的不可估量的复杂性证明了读者对拓展阅读的兴趣。其主要思想是采用反证法。我们可以通过两个小悖论来实现它的证明思想。
例如,有趣数字悖论。
这个悖论围绕所有自然数都是有趣的而展开。例如,1是第一个数字,有趣;2是第一个偶数,
有趣;3是第一个奇素数,有趣;4=2×2并且4=2+2,有趣。每一个数字,我们都可以到某个有趣属性。
但有时会到一些似乎无趣数字,其中第一个作为第一个无趣数字,这一点本身又很有趣,自相矛盾,产生悖论。
例如,培里悖论。
这个悖论事关描述大量数字。一般来说,使用单词越多,可以描述数字越大。例如,三个字描述“万亿”,不如用五个字描述“万亿万
亿”数字大。
现在考虑以下短语描述数字:“少于15个字无法描述最小数字。”意思是,描述这个数字需要用
15、16甚至更多字,而不能仅用12、13或者
14个字来描述。
但这里有一个问题:上面的短语只用了14个字来描述这个数字。也就是说,这个数的描述恰好违背了这个数的描述,就会产生矛盾。
同样,证明安德雷·柯尔莫哥洛夫的复杂性无法计算的想法也是一样的。假设可以先计算,再推理,就会发现矛盾,从而证明可计算的前提是错误的,是不可以计算的。
3、借鉴运用。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论