三体吧 关注:492,009贴子:7,421,016
  • 31回复贴,共1

【2.0】用程序模拟进化:文字进化

只看楼主收藏回复

主要是试图传递一些思想,程序感兴趣的可以看看(使用在上篇帖子),其实算法还是比较简陋的。
【2.0】用程序模拟进化:文字进化
2017-02-09镜子文明(然兮)南京大学科幻爱好者协会
笔者闲来无事调教文字进化的小程序,想着能不能搞个大新闻,进化出一个比较长的语句(之前选择life作为样例纯属偷懒)“dimentionalattack”(维度打击)。在换了十几组突变率和选择率的参数都宣告失败后,我不禁陷入了沉思,这程序到底怎么了,难道笔者或成最大输家?猛然间,我一拍大腿,发现了问题所在。
问题在于选择模式出了偏差。由于字母是随机突变成剩余的25个字母,因此lize肯定比mhgf更容易突变成life——然而前者的距离s(计算方法是∑差的平方)是400,后者是4。前者只需要一个字母完成特定突变就可以了,而后者要好死不死等4个字母完成特定突变,带上4次方的概率向你的进化发出了善意的微笑。
这个现象让我重新认识了进化过程。原先我以为进化只需要设定好突变率、选择率和进化终点,就可以沏壶茶坐等了——但是我没想到,原来选择模式这么重要。说选择模式有点不专业,装个13的话应该叫适应度评价(自然选择—生物适应是等价的过程,角度不同罢了,都是在反映生物环境之间的相互作用)。在遗传学上,适应度用来度量生物生存下来并把基因遗传给下一代的能力,在计算机模拟中,就是一个完成对数据筛选的适应度函数数值。
为了使计算机模拟的进化更接近生物进化,我更换了原来的选择模式(计算序列与目标序列的距离,取最优者),变成计算序列与目标序列的相似度、取最优者。为什么更符合呢?对于RNA的三联子密码,一般第一个字母决定氨基酸的前体(比如U决定了氨基酸以丙酮酸做前体),第二个字母决定氨基酸的疏水性,第三位具有简并性(同一个氨基酸可以对应多个字母)。对于这样的序列而言,有更大的相似度肯定比更小的距离更能达到目标功能,也就是有着更好的适应度。
但是前一种选择模式我毕竟研究了这么久,尽管成本已经沉没,但就是舍不得啊。于是我琢磨着,它还可不可以抢救一下。又是一拍大腿(哎哟,腿断了),我可以换变异模式啊。随机突变为剩余的25种字母非常不利于距离选择进化成目标序列,那随机变成相邻的字母呢?这样的话,进化成目标序列,距离选择就比相似度选择更优越了,这回轮到lize绝望地看着到life的距离了。
以上程序统一打包在下面的链接:
https://pan.baidu.com/s/1jIjvb2Q(点击阅读原文,这次亲测有效#滑稽)
Originalmode是最开始发布的版本,距离选择,随机突变。
Anotherselectingmode是更改了选择模式的版本,相似度选择,随机突变。
Anothervariancemode是更改了变异模式的版本,距离选择,随机变化为相邻的字母。
Genemode就是在模仿基因的突变模式了,字母表换成了ATCG,相似度选择,随机突变,基本结构和Anotherselectingmode一致。为什么要做这个呢?姑且挖个坑吧,管挖不管填。
可直接运行的程序都放在对应文件夹下的staticlibrary(静态链接库)文件夹下,不关心源代码的就直接戳它就可以了。
另外个人发现了一些使用体验差的地方,比如输字母很麻烦,输错了要重来,输多了要赋给下个数组数值,不过我也没办法,将就吧,有大神愿意的话请指教一下怎么修改。
————————————我是分割线————————————
到这里就结束了吗?
的确关于小程序的部分结束了,但关于这个程序的思想乃至进化原理的部分才刚刚开始。
进化的模式可以简单地概括为变异、选择和复制三个过程的循环,但这是定性的、粗糙的。三个过程不是孤立的,而是一个统一的完整的系统,相互影响、相互作用,任意一者的改变,都会极大地影响最后的结果。
首先是变异,可以从两个方面考虑:变异率和变异模式。如果把生物进化比作走路的话,那它们决定了走路的步幅和方式。
然后是选择,也可以从选择率和选择模式考虑。选择模式的核心是适应度的评价(而不是最后的选择结果)。在同样的比喻中,它们决定了路两边悬崖出现的频率和位置的分布,使得变异只走特定集合中的一些路径组合,不过这种组合好不好走就不一定了,好的时候山珍海味热切糕,唱着歌儿走大道;不好的时候这顿不知下顿饱,偶尔一个悬崖跳。
最后是复制。我想到的是字母表的考虑。(英文)文字进化的字母表有26个,生物进化的字母表是4个。不同的字母表使得变异的结果具有更大的多样性,相当于决定了可供选择的路径。
我所面对的进化只是计算机程序的模拟,虽然对我来说用数学工具来刻画很困难,但私以为对于数据工程师们而言,应该不算太困难。
然而自然就不会这么友善了。变异模式极其复杂,仅说基因的点突变:物理因素、化学因素、外在生物因素、内在生物因素都会导致点突变,尽管表象上只是碱基对变了一下(颠换:比如A—T/C—G;置换:A/T—C/G;增添;缺失),但这种变化有着复杂的权重计算,而且很可能变异一次权重还变了。更不要说大片段变异、染色体变异以及有性生殖涉及的交叉重组。选择模式极其复杂。环境太复杂了,生物体集合的可选择特征也太多了,不同特征之间的相互作用,又可以构成新的二次特征。很多变异是中性的,有些不中性的变异也很难衡量它的优劣。人类目前连写出一个通用的精确的适应度函数(哪怕是最简单的细菌)的理论基础甚至是研究基础都不具备。
更不要说生命起源时期充满不确定、不稳定和不平衡的状态,各类分子的碰撞组合,变异模式和选择模式想来多少来多少。
这复杂的壁垒太恐怖,看来对于复杂的认识我还是太年轻太简单,姿势水平太低,必须得学习一个。
但是我想说的是,这不正是生物的迷人之处吗?科学追求的不是特例,而是宇宙中亘古不变的规律,对于这复杂也是一样的。在极端复杂的混沌背后,我们期待的是主掌生物的简洁的、优美的、数学的自然规律。而再走远一步,就是意识的起源——这也是我最欣赏生物的地方:科学起源于观察的革命(比如牛顿物理学)、进步于观察者的革命(相对论、量子力学),而下一步我预见的升华是观察者之观察的革命,也就是意识的革命。这似乎太过遥远,也许生物的确不属于二十一世纪,但未来总将由生物带来一场超越。
最后的最后,想起《小窗幽记》的一句话:花繁柳密时,拨得开,方见手段;风狂雨急时,立得定,方见脚跟。



IP属地:重庆来自Android客户端1楼2017-02-11 17:40回复
    原文链接:http://mp.weixin.qq.com/s/wYDeYpkFewx6n-fFkR185w


    IP属地:重庆来自Android客户端2楼2017-02-11 17:40
    收起回复
      上一篇文章:http://mp.weixin.qq.com/s/P5UVAmZrDdzHQdO7pj4XGQ


      IP属地:重庆来自Android客户端3楼2017-02-11 17:41
      收起回复


        来自iPhone客户端4楼2017-02-11 17:42
        回复
          @爱喝盐汽水111 @请叫我撒比先生 @奥火法师 @威尔逊和史蒂夫 @MS试验驾驶员 @gjv9 @annonymous1230 @哥很闷烧


          IP属地:重庆来自Android客户端5楼2017-02-11 17:46
          收起回复
            恭喜,还有新版本吗


            IP属地:黑龙江来自Android客户端7楼2017-02-11 18:59
            收起回复
              只有我看不大懂吗


              IP属地:广东来自Android客户端10楼2017-02-11 19:07
              收起回复
                可以
                (还有我这个id不是死的


                IP属地:美国来自iPhone客户端11楼2017-02-11 21:52
                收起回复