03.21 血腥殺戮:數學建模還原古戰場

原文作者,Alex Doak,倫敦大學學院流體力學博士。

翻譯作者,溦之洸茫,哆嗒數學網翻譯組成員。

校對,我是崔小白。

關注微信:哆嗒數學網 每天獲得更多數學趣文

新浪微博:http://weibo.com/duodaa

希臘:留克特拉 (公元前371年)

出於對至高權力的渴望,古希臘的各城邦總是在不斷經歷戰火的洗禮。在一陣短暫的和平後,當時的霸權斯巴達公然挑戰底比斯的政治地位。由於底比斯拒絕解散由其主導重建的彼奧提亞邦聯同盟(Boeotian Confederacy),斯巴達對其宣戰。底比斯城以及她的盟友聚集了7200名重裝步兵(hoplites),由將軍埃帕米儂達(Epaminondas)率領,來到了留克特拉的地界,在那裡等待他們的是9600名斯巴達重裝步兵。

血腥殺戮:數學建模還原古戰場

此時斯巴達國王克萊奧姆波洛圖斯(Cleombrotus)情緒十分陰鬱,儘管近期在軍事上有過勝利,然而在前往留克特拉的行軍路上已經顯現了凶兆,尤其是因為獻祭給神靈的動物被狼吃了。然而在對手下各個將軍進行詢問之後,發現他們都確信斯巴達能夠取得勝利。現在他召喚你這個奇怪的旅行者,希望通過你的驚人洞察力幫助他分析未來。

一對一戰鬥及蘭徹斯特線性律

在所有的數學建模中,如果希望得到有意義的結果,我們必須理解所模擬戰鬥過程的基本機制。在這個例子中,我們需要對古希臘戰爭有更好的瞭解。希臘城邦的部隊主要是有重裝步兵組成。在戰鬥中,這些人採用的是‘臭名昭著’的方陣隊列:士兵們組成數排密集的橫向隊列,手持長矛和盾牌迎擊他們的敵人。每一支部隊同時前行,最勇敢和最有戰鬥經驗的軍人是在前排,這樣才能保證行進的隊伍不會減速和逃竄。兩軍接觸後,盾牌互砸,長矛互戳,血肉橫飛,屍橫遍野……最終,在經受一定的兵力損失後,一方的隊形完全崩潰,士兵開始大量逃竄,最終不可避免地被擊敗。

對於這一類的戰鬥,蘭徹斯特首次給出了一個簡單的模型,他假設軍隊的交戰是由一對一的形式進行的。也就是說,每名士兵只和與他對應的那一名敵軍士兵交戰,沒有參與打鬥的士兵在後排靜靜等待著他們戰鬥回合的到來。假設軍隊數量在時間t內是連續的。斯巴達軍隊士兵數S(t)及底比斯軍隊士兵數T(t)的變化率可以表示為:

血腥殺戮:數學建模還原古戰場

其中,N指的是在某一時間雙方各自的交戰人數。我們已知克萊奧姆波洛圖斯國王的方陣是由希臘重步兵組成的標準12排方陣,那麼第一排就有9600/12=800人。同時,克萊奧姆波洛圖斯國王認為底比斯軍隊為了避免側翼被包抄,會採用同是每排800人的9排的方陣來迎擊自己的軍隊。古希臘時期戰鬥的一個典型特點是傷亡相對較低,我們可以假設如果任意一方士兵數不足以維持6排陣列(即T<4800或S<4800),士兵就會產生恐慌情緒進而逃竄。

K_T和K_S分別表示兩隻軍隊的戰鬥力。如果K_T=1 (K_T表示K的下標是T,下文相應情況類似),意味著單位時間內,每一位在戰鬥的底比斯士兵都殺死了一名斯巴達士兵;如果K_T=0,表明沒有底比斯士兵殺死斯巴達人。蘭切斯特殺傷率(Lanchester attrition rates ,即K_T和K_S)不一定要為常數:它們可以是與時間有關的(戰鬥進行過程中士兵會變疲勞),或是依賴於S和T的數值(以寡敵眾會扼殺士兵的希望,或是使它們更加拼命戰鬥)。不過,為了簡單起見,我們認為這兩個參數是常數。

那麼問題來了:戰鬥中底比斯人的表現要比對手斯巴達人好出多少才能保證自己取得勝利?

我們建立的耦合系統非常容易求解,用(1)式除以(2)式,得到

血腥殺戮:數學建模還原古戰場

對上式積分,並將S與T的初值帶入,得到

血腥殺戮:數學建模還原古戰場

請注意,上述方程體現了軍隊中士兵數和他們總的戰鬥力是呈線性關係的(即著名的蘭徹斯特線性律)。這是因為我們採用了一對一的戰鬥模型假設。底比斯要取得勝利,換言之在某一時間t^*(t^*表示t的下標是*,下文相應情況類似),S(t^*)=4800且T(t^*)>4800,將S(t)=4800帶入方程(4),並重新寫出T的表達式,代入T(t)>4800,可以得到底比斯取得勝利的條件為

血腥殺戮:數學建模還原古戰場

血腥殺戮:數學建模還原古戰場

將這些信息呈給克萊奧姆波洛圖斯國王,你除了看到他的自信之外並不能提供什麼幫助:斯巴達人是當時最勇猛的戰士,儘管他的盟軍並不是這種最高質量的軍隊,那也沒有理由認為他們會比底比斯的彼奧提亞聯合軍“弱”兩倍。(譯者注:這裡的弱兩倍指K_S/K_T<0.5,也就是K_T/K_S>2)

遠程的戰鬥:瞄準火力和蘭徹斯特平方律

儘管希臘戰場主要是重步兵的舞臺,雙方軍隊還是會擁有一些輕裝部隊(通常來說是非希臘籍的僱傭兵),他們被稱為輕裝步兵,(peltasts,此文文中可理解為遠程步兵)。他們攜帶標槍和投石索,在戰鬥中向敵人投擲射擊。輕步兵主要用於襲擾敵人兩翼,除了幾個非常特殊的戰例之外,他們對戰局不起決定作用。同樣,我們讓斯巴達的500名輕步兵與底比斯1000名輕步兵交鋒,看看會發生什麼。

在這種場合下,我們用到的模型是蘭切斯特瞄準火力模型。斯巴達輕步兵P(t)及底比斯輕步兵Q(t)的變化率可以表示為:

血腥殺戮:數學建模還原古戰場

這是因為標槍手間的戰鬥不再是一對一了。相反地,所有士兵可以在同一時間向敵人射擊。(譯者注:這裡的“一對一”不是強調是否是兩個人的單打獨鬥,而是指同一時間能夠向敵人攻擊的人數,在前面(1)、(2)方程的耦合系統中,某一時刻在進攻敵人的人數為定值N,(5)、(6)方程中這個值是此時刻尚存的人數。這也就是線性律和平方律的本質區別所在。)因此,P的死亡率等於向他們射擊的Q的數值乘以一個係數α。同樣,這裡的變量α_Q不一定為常數,通常來講在非瞄準射擊的情況下,它是與P(即Q可以攻擊的目標數)成正比的。簡單起見,我們依然認為這兩個參數為常數。

將(5)式除以(6)式,得到

血腥殺戮:數學建模還原古戰場

通過分離變量法解微分方程,並帶入初始條件,得到

血腥殺戮:數學建模還原古戰場

人數與總戰鬥力由線性關係變成了平方關係,這就是著名的蘭徹斯特平方律。從這個等式中我們可以看出,數量要比質量更重要。比敵方人數少一半的斯巴達輕步兵的戰鬥效率要達到敵方的四倍(α_P/α_Q>4)才能與其打成平手。這些等式是在1916年第一次世界大戰時推導出的,或許可以解釋當時的人們對軍事的一些想法。

血腥殺戮:數學建模還原古戰場

戰鬥當天

部隊:這是戰鬥中的一個傳統,因為士兵的左手綁著盾牌,前進中他們會有向右偏移的趨勢,將精銳部隊放在右翼可以遏制這種趨勢。埃帕米儂達將自己的精銳部隊放在左翼,這樣以來他可以儘快消滅斯巴達軍隊的精銳,以免拖到後期己方在人數上的劣勢會成為大問題。

血腥殺戮:數學建模還原古戰場

吃完早餐並享用了一點葡萄酒之後,克萊奧姆波洛圖斯國王和他的軍隊來到了留克特拉的開闊平地。國王和他最勇猛的戰士位於右翼。可以看到遠處的底比斯人正在緩緩接近,揚起一陣塵土。遭遇戰首先在兩軍的輕步兵之間展開,此時兩軍的重步兵間還有一段距離。隨著底比斯軍隊的靠近,克萊奧姆波洛圖斯國王發現不對勁:底比斯人不按套路出牌,在斯巴達軍隊的右翼方向聚集了一個50排的隊列。這50排隊列衝到了克萊奧姆波洛圖斯國王所在的位置。開始並沒什麼作用:殘酷的戰鬥是在前排進行的,正如蘭徹斯特線性律,雙方都死傷慘重。然而隨著戰鬥的進行,很顯然50人縱深的底比斯軍隊不可能被僅僅12排的斯巴達人打敗。目睹了斯巴達精銳部隊一點點消亡並最終潰散,斯巴達的友軍也開始效仿,競相逃離戰場,儘管在此時他們面對的敵人數還是比己方少的。和很多斯巴達士兵一樣,克萊奧姆波洛圖斯國王也被殺死了,斯巴達在希臘的統治地位畫上了一個血腥的句號。

對模型的一點說明

蘭徹斯特方程是人口種群建模中非常簡單的一個例子,在對很多其他‘捕食者-獵物相互作用系統(其中最經典的要算是狐狸和兔子)’的建模中也有類似的方程。當然完全不必侷限於兩個“物種”,“物種”也不一定非要為有生命的有機體。

這些方程看上去太簡單了,以至於他們並不能真正反映戰爭的形態。其中最突出的弱點就是蘭徹斯特殺傷率。把一支軍隊的能力簡化為一個不依賴於時間和空間的常數,這個假設真的很難被人認可。況且,該模型還要求兩方軍隊都是同類的(也就是說所有部隊在計算中都要被認為是一致的)。同時,這也反映了埃帕米儂達的精明之處:他並不把敵人簡單地看作清一色的9600名重步兵,而是看作一小隊斯巴達人加上一大堆沒什麼大用的盟友。依靠“擒賊先擒王”的策略,埃帕米儂達在軍隊人數上的劣勢就不是什麼問題了。正如J-K Anderson所說:“戰場上雙方軍隊中相當大的一部分和觀眾沒什麼區別”。

儘管這個模型有著缺陷,但是平方律揭示了瞄準火力模型比一對一模型更加有趣的特性。在瞄準火力的攻擊情況下,將人數較多的軍隊分為兩部分,讓人數較少的軍隊逐次和這兩部分軍隊交戰,那麼人數較少的軍隊也會取得勝利。這種戰術會在線性律的模型下失效:如果斯巴達的盟友並未逃離戰場,那麼歷史可能會被重新書寫!

血腥殺戮:數學建模還原古戰場

關注微信:哆嗒數學網 每天獲得更多數學趣文

新浪微博:http://weibo.com/duodaa


分享到:


相關文章: