从基因到遗传算法及六爻

      现代的科学正史从来不曾提及,当年基因这个概念在科学界的地位,就如同江湖神棍的把戏,只会从孟德尔的豆子一直说到发现了DNA,然后就开始谈一些更复杂的东西,至于它背后的东西,连一笔都不带就过去了。

       实际上,基因的概念刚提出来时,科学界的主流权威们并没有慎重去对待它,而是各种讥讽与嘲笑,认为这是一个新神棍式的理论,因为在当时的时代看来,这完全就是件不可能存在的事情,直到后来DNA的发现才狠狠的抽了一记耳光。

       DNA是一种分子,但是这种分子有令人惊奇的特性,小小的DNA就类似一个分子级别的蓝图,这个蓝图上会指导生物的发展与变化,并且DNA仅仅是由两条核苷酸链构成的双螺旋结构。这一发现大大扩展了人的视野,在生物层次上,一个人与一个苹果的区别,从根本上来说,实际上只是DNA排序的不同。

       更重要的是遗传密码共计64种组合,而在中国公元前几世纪(有可能更遥远)的文化中,也就是易学文化中认为64卦可以模拟世间的一切。在孔子在《系辞下传》中说:“古者包羲氏之王天下也,仰则观象于天,俯则观法于地,观鸟兽之文与地之宜,近取诸身,远取诸物,于是始作八卦,以通神明之德,以类万物之情。”并盛赞称:“范围天地之化而不过,曲成万物而不遗”。

        基因的发现说明了一个问题,即使是像生物这样复杂的事物,也可以由极微小的某一个事物,不断的自我复制,并且在自我的复制中进行自我控制,从而发展成为一个复杂的个体,只要给予一个适当的条件,用一根头发丝也可以复制出一个人出来。这种自我复制的能力并不需要借助神明的掌握,能够自然而然的发生。

        DNA在复制的过程中并不是完美的,正因为这种不完美,所以才会有变异,而变异就是导致物种多样性的根源。这在哲学上意味着,现实中犯错不一定是坏处,人有时会做出的不理性选择,也不一定就是坏事,有时可能会创造出一条的新的路出来。

         有些人这种变异可能难以理解,认为它有可能是对生物来说,是往的方向进行变异,也有可能是往坏的方向进行变异,那么一好一坏的演变,会产生什么样的后果?

    万物始终是在运动与变化的,往好的方向变异与往坏的方向变异,但是要明白,这一切还要受制于自然的优胜劣汰,经过不断的筛选之后,大多数情况下,往往留下的就是更优良的基因,这也是进化之所以能够产生的原因。也就是说,生物在繁衍过程中,始终会不断的产生变异的,而这个变异通常是一个很微小的变异,但因为复制量非常庞大,所以一点点小小的变异,反映在最终的个体上就是巨大的变化。

    这种变异,有时会带来意外的惊喜,在一些场景下,往坏的变异并不重要,但只要有好的变异,往往就会带来更多的好处,解决现实中的棘手问题。   

    在现实中,有一类问题称为是难解的,它的难解是因为计算量太大,比如某个计算花尽带个宇宙的时间,都计算不出结果出来的话,在这个宇宙中就有可能是无解的。

      那么这类有可能无解的问题,有可能解得出来吗?答案是有。

       为什么,因为还有运气问题。一个良好的运气,能大大提高得到解决方案的效率,而一个糟糕的运气,就只能靠努力了,而这种努力有可能是没有结果的。科学计算,其实也是要借助运气的。有一种解决问题的办法,就是模拟生物的自然遗传,从而把求解的结果放到可能放到运气上去,这样就有可能大大缩短解决的问题时间。

      先假设一个问题,现在有一个星球,有某一处地方有珍贵的资源,现在已知如果某个位置上不存在这个资源,那么在相同的经度、纬度及45度角的经纬度上,都不会存在这个资源,那么我们应该怎么样去寻找这个珍贵资源?

       如果预计地毯式搜索的话,我们假设要花费100年的时间,但是如果目前只有50年了,并不允许我们使用地毯式搜索了,我们应该如何去找出它在哪里?

       最愚笨的方法就是地毯式搜索,搜到多少是多少,这是最没有效率的一种,而且如果一开始的定下的搜索路线如果让该资源只有可能在最后50年找到的话,那么一开始的搜索就是一个悲剧。

       更好一点的办法是采用随机搜索,在这个星球上寻点随机寻点挖掘,因为有运气的缘故,这种搜索有可能遇到运气好时有可能就会更快的找到,但是遇到运气不好时,最差的情况也不过是与地毯式搜索相当,这就是寄托于运气的一种搜索方法。

       那么,随机搜索的办法是否还能改进,能够更进一步的保留运气更好的搜索路线,抛弃运气更差的搜索路线?当然是可以的。

       方法就是模拟生物的遗传算法,先随机选择多条挖掘路线,然后在挖掘过程中,把那些一直没有出现问题的路线分解出来,筛选出一些组成的因素条件,然后再用这些条件去生成更多的挖掘路线,并且在生成的挖掘路线过程中,随机产生一定程度的偏离与变化,这样不算挖掘并调整下去,就会产生不断优化的效果,可以大大缩短搜索到目标的概率。

       遗传算法现在用于解决现实问题的计算的案例很多了,感兴趣的可以自己查找一些资料来看。

       生物的进化过程,实际上是一个不断优化的过程,遗传算法的特性决定了生物会往着更适应环境的方向发展,这说明了自然界的发展是有着某种目标的,而外界产生的环境,对生物的影响,无非也只是试图在调整生物往某个方向发展。

        在纯计算的角度来看,万物的运动,生物的生长衰亡,一代代的遗传改进,其实都是天地间这个庞大的运算中的一个部分,一切事物的运动其实都是向着某个目标在迈进,那么这个目标是什么?如此庞大的资源无时无刻的消耗,能量每秒都在不断的交换、转化形成的这个世界,它最终是想计算出什么? 

        顺便要提及一下,传统的占算中,利用六十四卦占卜过去未来,其实这个算法的过程,与遗传算法也有很多共通之处,不过六爻卦实际上还涉及到其它很多模型,这里暂不细说,先只说说遗传算法在六爻中的体现。

       六爻的起卦过程,首先是先求出某个一个卦,这个卦对应于六十四卦中的一卦,同时这个卦会产生变异,变异就是卦爻的变动,这个变动在卦的细节体现中是阴向阳的变化,或是阳向阴的变化,这种变异又会形成一个新的卦,同样是六十四卦中的一卦。这个基本上的起卦过程,DNA变异的过程是一致的,只是这种变异的细节在不同的体系里体现不同,如在梅花起卦的体系中,一次是只有一个爻产生变异的,并且一定会有一个产生变异,而在传统六爻卦中,完全没有变异或是六个爻都会产生变异都是会出现的。至于在卦及变异后的卦上的占算与判定,实际上就是遗传算法不断优化迭代的过程,不过这种迭代是通过一些方式来大大的进行了加速的,比如配纳甲配六亲等。

        正因为这样,所以说六爻卦可以用于问题的求解。至于六爻在起卦之前并没有取用客观事物的相关信息作为参数,而是直接先起卦,很多人会认为这种方法不科学。这种看法实际上没有明白这其中取随机数的问题,既然是取的随机数,就不存在先验还是后验的问题,事先考虑参数再起卦,与起完卦再考虑输入参数之间,实际上没有任何关系。

        正如上面的挖掘问题一样,或叫人去随机选择挖掘点,或自己在上面随手指定几个挖掘,或者是写上编号抽签决定挖掘点,或牵只兔子看往哪里啃草就在哪里选择挖掘点一样,只是行为不同而已,其实没有任何有区别。

       古人是否知道DNA这个东西,这不是我们需要讨论的问题,但是古人创建的这个术数体系,其中算法与遗传算法的各种巧合之处令人惊异。光以六爻卦的起卦过程及分析过程来看,会发现这一切无非都在体现四个字:“道法自然”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注