在一本正经的介绍兰彻斯特方程前,先膜拜一下方程的创始人:F.W.兰彻斯特
弗雷德里克·威廉姆·兰彻斯特,1868—1946
兰彻斯特方程最早收录在兰彻斯特的工程著作《战斗中的飞机》一书中,其核心主要是预测大规模多人会战中,各方队伍在人数、战力数据明确的情况下,各方在战斗结束时的战损情况,并且因为其计算结果在多次战争中得到印证而逐渐的被神化。
也因为其对理想状况下战损预测的高度精确性,在游戏行业中也经常会有一些人去琢磨怎样利用兰彻斯特方程让自己的战斗结果更加真实可信。而事实可能往往不如人意,这也是本文为什么要详细的介绍兰彻斯特方程的原因。
诞生背景
兰彻斯特提出的这个公式有着非常强的时代背景。当时的欧洲战争,是以“排队枪毙”战术为主流,打起来基本是这样的:
18、19世纪英国主流战术—“排队枪毙”
在我们现代人眼里,线列步兵这种“排队枪毙”战术简直就是二货扎堆的真人版,槽点满满。但实际上,这却是当时最先进、最实际的战术,没有任何其它战术能比它更加有操作性。
“排队枪毙”战术在实战过程中分成两个阶段,远距离对射,近距离肉搏,基于该特征,兰彻斯特在对战争损耗的模拟时,也利用了分情况讨论,并且以此得出了两个不同的战损计算公式。
方程解释
1、远距离恒定伤亡对射情况(上古时代才有的情况)
兰彻斯特第一线性律
以古代战斗模型为基础,战斗结局取决于双方的格斗水平。其假定条件是作战兵力相互暴露,可解释成人对人或武器对武器的交战,每一方损耗率都平均为常值。
设x0为红方在t=0时刻的初始兵力,xt为红方在t时刻瞬时兵力(或剩余兵力);
设y0为蓝方在t=0时刻的初始兵力,yt为蓝方在t时刻瞬时兵力(或剩余兵力);
设a为红方单位时间内损失的作战单位数;(每秒死a个人)
设b为蓝方单位时间内损失的作战单位数;(每秒死b个人)
则红方,蓝方在战斗中的人员损失情况可以用常微分方程表述如下:
简单求解可得在战斗过程中红方剩余人数xt以及蓝方剩余人数yt的具体数值。
战斗结果分析:
a,b分别代表红方,蓝方的损耗系数,换个方式来理解,a代表着蓝色方对红方的杀伤力,b代表着红色方对蓝色方的杀伤力。
简单的换算一下,红方,蓝方的战斗力可以表述如下:
当bx0>ay0时:
红方获得战斗胜利
战斗结束时间为:t2
战斗结束时红方剩余人数:x=x0-a*t2
当bx0<ay0时:
蓝方获得战斗胜利
战斗结束时间为:t1
战斗结束时红方剩余人数:y=y0-b*t1
当bx0=ay0时:
双方同归于尽
第一线性战损公式适用条件分析:第一线性律适用于同兵种、损耗系数为常数、能进行直接瞄准的一对一格斗的作战过程(如步兵对步兵、坦克对坦克的格斗)
第一线性律的基本特征是:在作战过程中,双方不断减员,兵力对比关系不断变化,但双方在单位时间内的对敌杀伤数却始终恒定。
第一线性律所描述的战场态势具有这样的性质:在战斗进行过程中,双方各自的对敌杀伤率不因战斗减员而变化,不因兵力对比关系的变化而变化。
2、不能精确探测双方位置的远距离对战
兰彻斯特第二线性律
以炮击为基础,射击带有一定的盲目性,火力集中在已知的敌战斗单位的集结地区,并不针对具体的目标实施射击,而这个集结地区的大小几乎与敌部队的数量无关(面射击模型)。因为射击为随机瞄准且不转移火力,在此情况下,双方的损耗率与自己部队数量,敌方战斗力,敌方部队数量均成正比:
设蓝军战斗力为a(每秒对红军的杀伤力)
设红军战斗力为b(每秒对蓝军的杀伤力)
则红方,蓝方在战斗中的人员损失情况可以用常微分方程表述如下:
根据第一定律时设定的初值条件和常微分方程知识,可以求解出红方,蓝方在不同时间段的剩余兵力(过程略去,给出最后的计算结果供大家参考)。
战斗结果分析:
当bx0>ay0时
红方获得战斗胜利
剩余兵力为:
当bx0<ay0时
蓝方获得战斗胜利
剩余兵力为:
当bx0=ay0时
双方同归于尽
第二线性战损公式适用条件分析:第二线性律适用于清楚敌方大概方位,但是因为射程,视距等因素影响不能对其进行精准打击的情况。
第二线性律的基本特征是:在作战过程中,双方战斗力会随己方战斗减员而发生变化。
3、大规模遭遇战(适合大多数现实情况)
兰彻斯特平方律
以大部分遭遇战为原型,合理的解释了“人海战术”的科学性和合理性,同时因为方程自身存在的特性,也提供了为敌众我寡,分而击之提供了理论依据(计算结果显示,将大团队等分能最大限度降低战斗的作战能力,这也是截断战术的理论解释),不过现代战争中影响战力偏差的因素太多,所以兰彻斯特平方定律并不能完美的解释现代战争的伤亡人数比。
在兰彻斯特平方律中,己方人员损失速率完全取决于敌方杀伤力和敌方人数,在能够精确打击的情况下,敌方一波能够带走己方人数的数量由敌方单体战斗力和敌方当前可投入战斗人数决定,即:
根据常微分方程知识,可以对该方程进行求解,得出红军,蓝军在t时候的剩余人数xt和yt(略去计算过程,结果仅供参考)
注:根据状态方程,在大规模混战中军团战斗力正比于单兵作战能力乘以军团人数的平方,即:
战斗结果分析:
红方战力大于蓝方,红方获胜
获胜时红方剩余兵力为:
蓝方战力大于红方,蓝方获胜
获胜时蓝方剩余兵力为:
一个重要的结论:
在大规模混战模型中,如下公式在战斗的各个阶段始终成立
应用分析
很多人都思考过怎样将兰彻斯特方程应用到RTS游戏的设计中去,以便制造出更加仿真的战斗结果;然而事实是,对游戏设计而言,兰彻斯特方程并没有想象中那么实用——它适合对非常理想化、单一化的战场情况进行模拟,比如没有第三方火力、排除地形因素等等,而实际战场远非这么简单。
试想一下,在皇室战争中利用兰彻斯特方程对战斗结果进行修正会出现什么情况?
因为皇室战争的战斗表现是即时的,玩家对战斗的细节一清二楚,而公式只能控制最终结果,如果二者出现偏差,玩家会在第一时间久发现问题。这说明,在所有需要表现战斗过程的多对多对战游戏中兰彻斯特方程都起不到任何作用。
那么是不是兰彻斯特方程在游戏设计中真的毫无用处吗?答案也是否定的!
在忽略战斗过程的情况下,兰彻斯特方程是最合理的计算战损比例的方式。所以在诸如《三国霸业》、《三国志》等通过兵力数值变化来表示战斗结果的游戏中,兰彻斯特定律是大有可为的!兰彻斯特方程自身的局限,最大的原因不是现实环境的制约,而是其本身是跳过过程直接对战斗结果进行模拟。事实上,在所有需要表达战斗过程的对战游戏中,战斗的结果会自然的去向于兰彻斯特方程,根本就不需要用兰彻斯特方程来对战斗结果进行修正!
如果为了追求一个理论上合理的结果而改变游戏的体验,这是违背游戏设计原则的。兰彻斯特只是方程,不是标准。