DForum
order

模擬人生的方法

  • 林一平

林一平手繪之狄更斯。林一平

最近大家都在高喊雲端運算,談虛擬化(Vitualization) 、負載平衡(Load Balancing)等等。其實這些技術的基本原理,在2、30年前就已存在。例如我的博士論文題目是平行模擬(Parallel Simulation),係以多部計算機來模擬離散的事件(Discrete Event) ,在負載平衡上就下了極大的工夫。

平行模擬最大的問題是,許多部計算機要共同模擬一個現象,彼此必須協調,相當困難。例如用10部計算機模擬一個系統在100分鐘內的變化,這些計算機必須依時間的次序來模擬事件 (Event),因此要協調,避免後發生的事,被先模擬到。我們的研究顯示,協調的成本甚高。

1980年代的有一天我突發奇想,做了另類思考,如果將前述100分鐘的模擬,切成十份,第一個10分鐘由第一部計算機模擬; 第二個10分鐘由第二部計算機模擬,以下類推。所有計算機平行模擬時,彼此之間不需要做任何協調。當它們全部完成運算後,再將所有10分鐘的結果依序串接回來,就完成整個模擬程序。我將這個方法叫作Time-Division Algorithm,發表於ACM Transactions on Modeling and Computer Simulation這個雜誌的創號刊,頗受矚目。

有不少學者持續我的研究,但將這個方法改名為Time-Partitioning Algorithm。這個方法其實並不容易使用。你必須先預測系統在第10分鐘時,處於何種狀態,如此第二部計算機才能正確的模擬第二個10分鐘。這當中有一些數學理論,不在此說明。

在電話公司工作時,我曾用Time-Division Algorithm來模擬電信交換機的效能。後來我有點走火入魔的想,是否可以用這種方法快速模擬人的一生。例如針對一個20歲的人,我們先假設他在30歲時的狀況(由關西摸骨算命師提供),再同時模擬他20~30歲及30~40歲發生的事,豈不有趣?其實狄更斯(Charles John Huffam Dickens;1812~1870) 在《小氣財神》(A Christmas Carol) 這部小說,就用Time-Division Algorithm對主角Scoorge的一生快速模擬,然後讓聖誕精靈分段放給Scoorge看。

做模擬研究的人,都會忍不住去偷嚐「模擬生命」這個禁果。我20年前的一位好友傑佛森 (David Jefferson)就是如此。傑佛森超級有個性,喜歡開跑車飆速,也很會「國罵」。我大部分的「美國俚語」,是向他學來的。他在UCLA升等為常聘副教授 (Tenured Associate Professor)沒多久,打電話告訴我:「Jason, I fxxking left UCLA.」原來他一升等就決定換工作,跑去一家公司玩耍子去啦。

傑佛森發明了一種很特殊的平行模擬方法,叫做Time Warp,時間可以倒捲回來的意思(不過Len Klenirock好像也獨立想出類似的方法)。Time Warp的計算機不互相協調,各自亂跑 (這和傑佛森的個性很像)。當一部計算機發現跑過頭時,就將時間倒退,並取消(undo)超前模擬的事件。傑佛森這怪咖後來想到要模擬生命。他闖入了生物領域,進行人工生命(Artificial Life)的模擬,我一點都不驚訝。

現為交通大學資工系終身講座教授暨華邦電子講座,曾任科技部次長,為ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究興趣為物聯網、行動計算及系統模擬,發展出一套物聯網系統IoTtalk,廣泛應用於智慧農業、智慧教育、智慧校園等領域/場域。興趣多元,喜好藝術、繪畫、寫作,遨遊於科技與人文間自得其樂,著有<閃文集>、<大橋驟雨>。