Showing posts with label self organization. Show all posts
Showing posts with label self organization. Show all posts

Monday, December 10, 2001

軟體系統的秩序起源--《建築的永恆之道》評介之續篇

  這一回,就如之前規劃的,來聊聊“軟體構築”。更精確地說,是軟體系統中,秩序的來源。

  大體上,這篇文章會由我認知到這些想法的時間先後來描述:

~~

   大部分的程式員,只要從事過幾個軟體系統的構築,在經過多次日以繼夜與軟體臭蟲纏鬥的歷練之後,相信很容易就能體認什麼叫做 garbage in garbage out--電腦是個沒有自己想法的傻蛋,它只會依計行事,它只能根據程式員編撰的指令列表,逐一地執行指令,不多也不少。

  「軟體系統的秩序是程式員從外頭強加進來的」

  這就和每一個精密的人造製品,如鐘錶、手機、電腦等一樣,也如同每座偉大的建築物般,不用費太多想像,就可以知道其幕後必有設計者設計出這些東西。

   X    X    X    X    X    X

  只要構築過幾個中型以上的軟體系統,就會發現,我們很難真正對這些系統的每一個細節都顧慮到:

  隨著軟體系統規模的加大,緊接而來的複雜度滋長,是非常可怕的,所以每個優秀的程式設計師都很能體認,人類的腦容量在面對大型軟體系統時顯得十分卑微。
  但是一個又一個重量級的軟體系統還是被完成了!難道就只靠善盡一些分析、設計的方法、流程等軟體管理方法。就能維持住我們挹注到系統中的秩序?人們真的就只靠自己對每一個細節的精確掌握就防堵了因開發過程中導致的“軟體熵”快速滋長?
  晚近的軟體工程都非常強調軟體構築是一個反覆的過程:分析一些後再設計一些或撰一些程式碼;設計一些後,在撰碼之前,也可能再作分析的工作;撰過一些碼了,也可能再去作分析、設計的工作。整個過程充滿著意外、挫折、驚喜與學習。

  「軟體系統與其建構者在互動中而滋長出秩序」

  雖然很多人也許不願意承認,但軟體系統中的秩序並非只是單純地由程式師從外界引入。即使在構築的過程,軟體系統也透過人和外界環境產生豐富的互動。有時陷入混亂;有時軟體的完成,甚至還有水到渠成之感呢。

   X    X    X    X    X    X

  在生物學上,有一個貫穿這個學門的通則,這對生物學這門充滿例外和驚奇的領域來說,的確是十分罕見的,這項一般性原理就是 Darwin 所提出的《天擇》

  「軟體系統的秩序也可經由“天擇”產生」

  天擇是生物演化的機制,而由John H. Holland 所提出的遺傳演算法作了第一次在電腦上實現天擇演化的示範。
  現在,天擇已經被借用到許多軟體系統裡,以解決一些關於設計、模式識別及特徵搜尋等問題。並將這門研究統稱為“演化式計算”。

  演化式計算解決問題的方式和傳統軟體如作業系統的設計方式雖然有很明顯的差距。但他們對於軟體系統秩序的來源,都較傾向於“由外而內”。
  傳統軟體系統的秩序是程式員由外界給定的;演化式軟體系統的秩序是經由天擇選出後再注入系統的,而挑選的標準大致還是程式員由外指定的。

   X    X    X    X    X    X

  在許多情況下,我們對問題沒有一個明確的解法,而演化式計算的方法又顯得太過緩慢及浪費計算資源。

  有一個做法是,先找出系統中的交互關係,據以建立軟體模型,然後讓這個模型設計自己,使解答經由“自我組織”的方式“突現”出來。

  對我而言,軟體秩序中最難有直覺性認知的來源就是這種被 Kauffman 稱為自在的秩序(order for free)的自我組織原理。

  「自我組織也可為軟體系統產生自發的秩序。」

  非常複雜的系統通常具備收斂性的變化流程:恆定性或微擾下的穩定性背後之基本原理,也是許多複雜系統的自然特徵。

  自我組織是自然界中最普遍的秩序原理,對物理學家而言,一點也不陌生。而天擇及自我組織聯手造就了生命系統的秩序。

  英國神學家Paley曾想像有個人,在路上撿到了一只錶,這人發現「在事物裡有一個秩序原理,這個原理將這個錶的零件安排成目前的形式」根本不可能。因為「他從來沒見過由秩序原理製造的錶;也不能想像所謂秩序原理究竟是什麼,除非指的是鐘錶匠的智慧。」
  Kauffman的錶是從內部經“自在的秩序”設計出來的。Paley 的錶是由外部的鐘錶匠設計的。Darwin的錶是以時間過程中純粹偶然事件的累積設計的。

~~

  呵!遲了一個禮拜才整理出來,實在是最近比較忙,一不小心時間就從指縫溜了過去。

  所幸,還是整理出來了,對自己雖有個交代,內文脈絡卻顯得不大連貫。倉促行文,諸位看官就把它當作消遣,看看就好 :p

Tuesday, November 27, 2001

《建築的永恆之道》再次評介

  既然大家那麼捧場,於是就決定再出幾篇相關的簡介和心得:
~~
※第一卷※
書名:建築的永恆之道(The Timeless way of Building)
原著:Christopher Alexander
譯者:趙冰
出版:六合出版社

※第二卷※
書名:建築模式語言(A Pattern Language)
原著:Christoher Alexander, Sara Ishikawa, Murray Silverstein,
   Max Jacobson
中譯:王聽度、周序鴻
出版:六合出版社
~~

  任何人在初得知作者歸納出 253 個建築的模式,並宣稱小至天花板旁的飾品,大到整個城鎮的設計,都可以從這 253 個模式中組出充滿生氣的建築時,一定都會直覺地認知這253個模式應該像樂高玩具的各種積木般來堆積、排列組合出各種建築物。

  第一卷還沒讀完就發現,我錯了...

  初翻本書時,在中國傳統國學的薰陶下,很自然地會憶起《老子》這本著作的一些語句:

    『道』沖,而用之或不盈。
    淵兮似萬物之宗;湛兮似或存。
    吾不知誰之子?象帝之先。

  恰巧又讀到作者自己提到“無名的特質”很難用文字表達。這時很自然地會心想,作者大概準備含混地描述他的理論吧!畢竟道家思想難免給人不精確的印象吧!

  而作者卻強調他所提的“無名的特質”很難用文字表達的原因,不因為它是主觀的、含混的;相反地,“無名的特質”是超然地客觀,而且相當精確,它無法用日常用語表達最主要的原因是日常用語太過含糊,你很難用模糊的語言去描述比它精確、細緻的事物。

  在研讀完第一卷後,只能說又是一個全新的視野:如果有人自稱知道一點道家思想的話,相信他看了本書後不是對道家思想有更深層、更精確的認識,就是認為以前國文課時所得到關於道家的觀念幾乎偏離主題偏離得離譜。

  以下就再次地摘錄一些書中的片段:

   X    X    X    X    X    X

  有人已經告訴我們,優秀的建築與低劣的建築,優秀的城市與低劣的城市之間沒有客觀的差別。

  其實,建築、城市的好壞之別是一個客觀的問題。它是健康與疾病之別,完整與分裂之別,自持與自毀之別。在健康、完整、有生氣和自持的世界中,人們自己就是充滿活力,自我創造的。而在分裂和自毀的世界中,人們無法生存,我們將不可避免地走入自我毀滅的悲慘境地。

  不過易於理解,為什麼人們如此堅信好劣建築之別沒有單一堅實的基礎。

  這是因為產生這種差別的獨特中心特質無法命名。

   X    X    X    X    X    X

  「城市的結構可以單純從各個局部之間自發的相互作用中形成嗎?」

  它可以由一個人們狹義地作各自想要做的,而仍能成功地創造一個整體的自由過程來產生嗎?

  「亦或結構必須靠一隻無形的手,按照藍圖或總圖來規劃嗎?」

  難道必須有某種控制,某種集權主義秩序從上面強加下來,限制單個行為的自由,強迫它們適應大尺度的秩序嗎?

  「這裡就和一個生物學早已提出的問題來作個對照:『有機體是怎樣形成的?』」

  例如,關於你的手,伸到你的面前,你是否意識到,這個複雜的形狀,這個骨骼、肌肉、指頭、大拇指、指甲、關節、皺紋和精妙曲線的錯綜結構是在完全沒有藍圖或總圖的背景下形成的?
  你是否意識到,只是在那些依據個別細胞的互相作用,而指示各個細胞生長的規則支配下,細胞的合作才形成了這隻手的?

  或舉另一個例子,從我的窗子望出去,我看到幾平方碼的花叢在那裡,草長在下面,一兩顆樹突出來,一些其他植物夾雜其中。
  如果我注視這些樹叢,直到單個葉子,它們下面的土粒,細枝,花瓣,葉上的小蟲,葉之間的空隙,下面的葉子敞向天空的細節,我非得相信有個無形的設計者創造了這一切嗎?

  「起初生物學家認為肯定有個無形的設計者。」

  他們相信,沒有東西,沒有一個告訴諸多細胞在何處安置自身的總的精神意圖的控制,這種奇蹟就不可能發生。到了十七世紀,一些生物學家甚至還相信人的每個細胞都包含一個人模樣的小人。

  「現在清楚了,有機體完全是由遺傳密碼支配的細胞相互作用而形成的。」

   最近,我們的實驗已經開始把它搞清楚,這個所謂的奇蹟不是由上面指導而得出的奇蹟,而是部分之間精妙組織起來的、協同作用而得出的奇蹟;獨自生長的細 胞,互相傳達訊息,只由遺傳密碼控制的指令支配,它們相互間正確地活動,以創造一個不可詳細預見的,但可以辨識類別的完整個體。

  「這也適用於一個城市。」

  一段時間,人們認為城市必須由規劃師做出規劃或藍圖。據說,如果城市的秩序不是這樣產生,城市將不會有秩序。於是,人們竟無視所有傳統社會建造的美麗城市和村莊,都沒有規劃總圖的明顯事實而恪守這一信條,人們已經讓自己放棄自由。
  然而像生物學一樣,現在清楚了,一個城市的結構,可以由共同語言中個別建造行為的相互作用構成,比藍圖或總圖更深、更複雜。而且的確,正像你的手,或像窗外的花叢,它是控制各部分建構的規則相互作用產生的最好結構。

....

   X    X    X    X    X    X

  好了,關於本書的評介,到此就告一段落。在此真的由衷希望有興趣的人,真的可以去捧一本回來好好研讀。下次會稍稍轉換一下──題目不作大變動,但內容會稍稍轉移一下領域,也算是借題發揮吧! :)

  按照心中的規劃,最少還會再出一篇相關個人的心得整理,預計在這個週末會整理出來,應該會把主題轉到自己的本業──軟體“構築”的相關議題上。也許還會順道介紹幾本書來和大家分享...