智慧應用 影音
DForum1120
ADI

戰爭教程式設計的一堂課

林一平手繪之項羽(左)和劉邦(右)。

最近檢視學生碩士論文寫的系統程式,有些太過零散,戰線拉太長,覺得自己像普丁(Vladimir Putin)總統,不知如何收拾烏俄戰局。第一階段俄羅斯在烏克蘭東北部推進失敗中耗損和分散的單位,只能希望藉著地理上集中作戰力量、縮短補給線和簡化指揮管制等方式,糾正第一階的問題。學生寫的系統程式也一樣,說模組化不像模組化,說集中也不太集中,指導教授如普丁大帝,

面對著巨大的挑戰,被迫合併及重新部署其中的許多模組,也造成學生士氣低落,主要是學生不熟悉分進合擊的寫程式策略。

數年前我接受邀請到湖北武漢參加資通訊國際會議,擔任主題演講者(keynote speaker)。研討會結束後和國外學者Ivan Stojmenovic等人遊覽東湖磨山公園。散步時閒聊到研討會主題,集中式(centralized)與分散式(distributed)計算的利弊。

東湖磨山公園入口城門題字「荊楚雄風」,讓人想起西楚霸王項羽,於是大夥談起楚漢相爭時的諸位好漢,包括劉邦、韓信,和周亞夫。我向Ivan介紹項羽的故事,又聊到集中式及分散式的優劣。我說項羽擅長希特勒式的閃電戰術(Blitz Tactics),打起仗來,單刀直入,銳不可當,屬於集中式處理 (Centralized Processing);劉邦對抗項羽,在戰略上則採取聯合諸侯這種分散式處理(Distributed Processing),雖然每次被項羽打得像沒頭蒼蠅一樣逃竄,最後終能與盟友分進合擊,因此獲勝。可見楚漢相爭,分散式的策略還是優於集中式。

除了劉邦,也有軍事家洞燭分進合擊的分散式策略,例如德國的鄧尼茲(Karl Donitz)。第二次世界大戰初期時德國的海軍力量薄弱,而無線電通訊技術的發展讓德國能和海軍力量強大的盟軍對壘,主要的功臣是鄧尼茲。他是納粹德國的海軍元帥,1918年擔任潛艦UC-25的艦長,在第一次世界大戰時擊沉5艘運輸船。

鄧尼茲檢討他在一次大戰的經驗,認為以單一潛艦襲擊護航船隊是非常危險的,於是發展出以「多艘潛艦集結起來攻擊船隊」的核心概念,創立「集結戰術」(Rudeltaktik),以多艘潛艇進攻的戰術:首先以單艦、偵察機巡邏,發現船團時先不攻擊,而是一邊跟蹤船團,一邊向總部通知通商船團的航行路線、規模、護航艦數量等資訊,然後再以無線電通知鄰近潛艇集結起來埋伏。當船團進入攻擊範圍,就包圍攻擊(通常是在夜間展開攻擊)。包圍攻擊的方式和陸軍的做法相反。陸軍的袋狀包圍是袋口面對敵人的正面,而鄧尼茲的潛艇袋口則包抄船隊後方。這種戰術需要在潛艇間建立很好的無線電通訊技術。

在兩次大戰期間,德國的無線電反干擾能力提升許多,而德國發明的恩尼格瑪密碼機(Enigma)更大幅加強防竊密能力。在無線電通訊技術的大力加持下,鄧尼茲分進合擊的戰術屢建奇功,英國的船隊被鄧尼茲打得叫苦連天,稱之為狼群戰術(Wolf pack)。在資通訊的領域,我們的發展的最新方向應該是「集中的分散式」計算。換言之,資通訊系統內部的設計是分散式,而使用者寫程式時,感覺是集中式。

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