程序自主进化

首先来讲讲为什么要研究程序自主进化。

在这个全球步伐随互联网腾飞的时代,人们的需求快速增长。因此,各种应用软件或Web应用都需要随着用户的需求而高速频繁更新。而更新往往不是那么简单的。很多中小型软件公司在开发一个产品时,片面的追求开发速度,并不愿意花太多时间去为以后程序的扩展和复用做过多设计。这就造成了这样一种囧态,在用户需求发生巨大变动或累积时,旧的产品已不能再满足用户需求,软件公司就需要从0开始,重新开发一个符合需求的软件,这是要付出极大的代价的。

可以看出,中小企业为了得到更多的客户和减少资金投入,尽可能的缩短开发时间,避开一些繁杂的设计,只要能尽快拿出能用的软件就行。而另一方面,这种做法的弊端会随着时间推移慢慢显露出来,给软件公司带来更大的问题和负担。

个人认为,即便不存在以上问题,软件本身的智能可进化也可能是一种趋势,因为在我看来,软件自身智能进化,是互联网智能化的基础。就好比大自然的进化一样,需要人类和其他高等生物本身具有进化的能力。人并不能完全掌控互联网,就像人不能掌控大自然一样。我们在大自然中已经拥有了不错的地位,就不要妄想在互联网的世界里依然称王。互联网的世界里应该有它自己的“生命”,这个“生命”不是人类,而应该是各种各样的程序。

基于以上分析,我认为研究程序的自主进化很有必要。下面我们来看一看程序进化研究的现状。

相关数据显示,现在的互联网上流窜着大量的难以查杀的病毒(病毒也是程序),互联网数以亿计的计算机就像是一个巨大的培养皿,提供给病毒一个很好的进化环境。在这样的环境下,低级简单的病毒逐渐被淘汰,而高级复杂的病毒存活了下来。如此优胜劣汰之下,病毒势必会产生进化。虽然这种进化并不是标准意义上的进化,更多只是对自身参数和触发方式的修改。但谁能保证,这样的进化会不会越来越智能。而且这样的进化完全是人们不可知的。

     国外已经有很多的团队和工作室已经在做这方面的研究。比如用PROLOG规则的自添加实现程序的自编程,比如能自主学习的智能机器人。我曾在网上看到一个工作室,用程序虚拟机器人,然后随机产生100个这样的机器人,这100个机器人中大部分不会走路,甚至一动就会倒下,然后从这100个机器人中选出一部分优秀的,让他们自繁下一代。到第10代的时候,很多机器人已经能够蹒跚行走了。到20代时,机器人除了跳跃已经能够做很多动作了。(具体请参见BBC-神秘的混沌理论)。

也有一部分人认为,程序要实现智能化、不能停留在代码层面。应该实现更底层的智能化、比如智能逻辑电路。就像人的大脑突触和神经元的进化一样。当然,在我看来,这更像是硬件的进化。

目前很多软件都能做到主动收集数据、接收数据、分析数据并储存数据。这意味着软件也可以和人类一样向外界学习。软件可以根据环境的变化不断完善自己的程序。当然,目前大多是不循序程序肆意修改的,这需要操作系统做一点改变,如果可以操作系统也智能化最好,因为操作系统本身也是一个大的程序。

当然,软件的进化目前依然有很多难题。

第一个,速度,虽然目前CPU的最快运算速度已经达到每秒几亿次,但这对于实现程序智能进化还不够。如果以后量子计算机能够普及,或许会大大加快软件本身智能进化的速度。

第二个,算法,每种事物都应该有其对应的数学模型,只是目前没有人发现。进化也是如此,就像胚细胞最初都一样,为什么后来会进化成各种各样的组织细胞。这应该都是可以用数学模型来描述的。这也是著名的混沌理论中的一种观点。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章