※ 引述《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