作者reader (读者)
看板CSSE
标题软体演化
时间Thu Aug 24 15:06:10 2006
※ 引述《micklin (mick)》之铭言:
: 在I, Robot中有提到类似的概念, 不过仔细想一想就会觉得,
: 以可能的程式码做为搜寻空间实在太庞大了,
: 以上述的例子来看, A op B 有许多种可能的排列, 而那个例子已经是简化过的了。
: 要在可以接受的时间内得到答案, 就要给予更多的限制。
: 然而更多的限制也让得到最佳解的可能性受限了, 更何况在没有prior knowledge时,
: 要下限制也无从下起。
所以我就提倡过 Minimalism Programming (现在讲 Computing Minimalism 的
好像比较多) 。
没有极简设计,就很难有效减少复杂度,特别是组合爆炸的情况。物件导向和
设计样式之所以受到欢迎,最重要的原因其实就是软体单元间沟通的极简化。
例如我以前就设计过一个网路架构,其通讯协定的基本命令只有五个,所有的
网路物件和命令,全都可以有效压缩在有限的数字空间之内 (最早的设计还是
32/16 bits, 後来才扩增至 64/32 bits)。
於是在网路中实现系统自组织、自演化的可能性,也就比传统的网路架构来得
大多了。特别是其中的网路物件还可以移动、合并、取代、分裂、复制,可以
有许多东西可以玩,还颇有实用性。
但我反而因为它的威力可能无法控制,而一直没有积极实作,总觉得要想清楚
才能推出。
: 还有就是之前有版友提过的, fitness不容易设计,
: 因为在没有目标的情况下, 没办法评估改变是好还是坏。
: 大概就是这样吧~
若是在网路环境之中,能够存活就好了,不必特别设计 fitness. 在发展的
初期,人择的机制可以起很大的作用。
中型程式单元显然比内容只有极少数资料的微型程式单元更容易实现演化,
关键就在於人类自身就是一个强力智慧机制。若能有效限制软体演化空间,
人类就能有效参与其中。适当的程式单元规模,是以技术实现软体自演化的
重要参数。
所以喜欢做软体基础建设的我,当时也搞了一个叫做 cell model 的东西。
其中的基本概念之一,就是有了 cell, gene 才会有用处。
不过这又是一个与主流学术圈不太合的概念,可以参考的东西比较少。多重
代理系统 (MAS, Multi-Agents System) 是比较接近这个概念的东西,也曾
红过一阵子,不过好像多数人的研究方向又太偏实用性了。
--
※ 编辑: reader 来自: 61.222.173.30 (08/24 15:15)