作者micklin (mick)
看板CSSE
标题Re: 软体演化
时间Thu Aug 24 18:00:31 2006
※ 引述《reader (读者)》之铭言:
: ※ 引述《micklin (mick)》之铭言:
: : 在I, Robot中有提到类似的概念, 不过仔细想一想就会觉得,
: : 以可能的程式码做为搜寻空间实在太庞大了,
: : 以上述的例子来看, A op B 有许多种可能的排列, 而那个例子已经是简化过的了。
: : 要在可以接受的时间内得到答案, 就要给予更多的限制。
: : 然而更多的限制也让得到最佳解的可能性受限了, 更何况在没有prior knowledge时,
: : 要下限制也无从下起。
: 所以我就提倡过 Minimalism Programming (现在讲 Computing Minimalism 的
: 好像比较多) 。
: 没有极简设计,就很难有效减少复杂度,特别是组合爆炸的情况。物件导向和
: 设计样式之所以受到欢迎,最重要的原因其实就是软体单元间沟通的极简化。
在以前都以「软体IC」的角度来看待, 不过现在很少看到有人在讲这个词了.
如果可以把程式码拆解成一块一块的atom, 给予这些atom适当的的连结机制,
或是适当的排列组合, 应该可以产生意想不到的功能。
: 例如我以前就设计过一个网路架构,其通讯协定的基本命令只有五个,所有的
: 网路物件和命令,全都可以有效压缩在有限的数字空间之内 (最早的设计还是
: 32/16 bits, 後来才扩增至 64/32 bits)。
: 於是在网路中实现系统自组织、自演化的可能性,也就比传统的网路架构来得
: 大多了。特别是其中的网路物件还可以移动、合并、取代、分裂、复制,可以
: 有许多东西可以玩,还颇有实用性。
: 但我反而因为它的威力可能无法控制,而一直没有积极实作,总觉得要想清楚
: 才能推出。
但是极简化之後是否表示指令的个数要增加?
如果是, 那程式码的膨胀问题需要列入考虑吗?
有没有打算放个alpha版给版友们玩一玩 XD
: : 还有就是之前有版友提过的, fitness不容易设计,
: : 因为在没有目标的情况下, 没办法评估改变是好还是坏。
: : 大概就是这样吧~
: 若是在网路环境之中,能够存活就好了,不必特别设计 fitness. 在发展的
: 初期,人择的机制可以起很大的作用。
: 中型程式单元显然比内容只有极少数资料的微型程式单元更容易实现演化,
: 关键就在於人类自身就是一个强力智慧机制。若能有效限制软体演化空间,
: 人类就能有效参与其中。适当的程式单元规模,是以技术实现软体自演化的
: 重要参数。
虽然能够存活就好, 但是从效率面来考量, 为了减少无意义的个体,
应该还是要有fitness的评估模型来决定个体的生与死。
人类的参与程度是一个变因, 因为主观认定的问题, 在做出选择时并不客观,
在初期的确是以人择为最佳做法, 在运作一段时间後, 就可以建立knowledge base
或rule base来自动做决策, 最後就是「放给他跑」, 讲好听一点就是「射後不理」 XD
如果把网路环境限制在一定的规模下, 并给予一个观察者的界面,
整个情况会很像小孩子观察蚕宝宝或用显微镜观察微生物一样 XD
应该很有趣吧~
: 所以喜欢做软体基础建设的我,当时也搞了一个叫做 cell model 的东西。
: 其中的基本概念之一,就是有了 cell, gene 才会有用处。
: 不过这又是一个与主流学术圈不太合的概念,可以参考的东西比较少。多重
: 代理系统 (MAS, Multi-Agents System) 是比较接近这个概念的东西,也曾
: 红过一阵子,不过好像多数人的研究方向又太偏实用性了。
Multi-Agents System修过课, 都还给老师了 orz
可以深入一点的谈谈cell model吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 70.171.224.50