翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 2186|回复: 10

[教程] 【帝国数学理论·第三弹】理想远程单位的战斗模型

[复制链接]

3

主题

1

精华

3131

积分

公爵

耕战
519
鹰币
28
天龙币
0
回帖
25
附庸关系0
发表于 2016-7-29 12:46:59 | 显示全部楼层 |阅读模式
本帖最后由 这只话唠菜鹰是路人 于 2016-11-22 00:43 编辑

    在帖子https://www.hawkaoe.net/bbs/thread-135606-1-1.html的最后,Howerds提出了一个问题:求对方都是同一近战兵种的情况下,La Hire所能战胜的最大人数N。我恰有兴趣,对这个问题进行了一些研究。

(请原谅我的翻译腔……)
(撰写仓促,难免有错误和疏漏,欢迎指出)


    引言:多兵种混战的建模问题
    关键词:最大受围攻数、理想单挑模型、理想群殴模型、走动耗时、理想远程单位、理想远程单位的战斗模型、平滑攻击假设
    在对多兵种混战建模的过程中,我们注意到对战时能够同时攻击一个敌方单位的我方单位的最大值会显著地影响结果。我将此定义为最大受围攻数。通俗点说,N个人依次上去和La Hire单挑,与N个人一拥而上群殴La Hire,结果相差是很大的。为了简化模型,我在本帖只讨论两种情况:1. “理想单挑”模型,即任何时候都至多只有一个我方单位能攻击La Hire。2. “理想群殴”模型,即可以有无限多的我方单位同时攻击La Hire(注:这在帝国是不太可能实现的,譬如你用长弓兵去攻击La Hire,则最多攻击La Hire的长弓兵数量是以La Hire为原点,以长弓兵射程为半径的圆能够站得下的长弓兵数量)。实际游戏当然与理想模型有所偏差,远程单位的战斗比较接近后者(你可以用非常多的射手同时齐射La Hire),而近战单位的战斗介于两者之间(你可以用大概六七个剑兵勇士同时攻击La Hire,因为La Hire的身边只能挤下这么多人)。


理想单挑模型 - 任何单位都至多只能同时被一个对方单位攻击,最大受围攻数为1。
理想群殴模型 - 任何单位都可以同时被无穷多个对方单位攻击,最大受围攻数为无穷大。


    同时,注意到在群殴时,可能存在单位走动耗时的问题,如当你用游侠攻击La Hire,前两个游侠可以立即攻击,第三、第四个游侠则需要绕到La Hire背后,在这一秒的时间内La Hire已经完成了一次攻击。在我们的模型中不考虑这个问题,即假设单位走动不需要任何时间。
    不难发现,这个“零走动时间的理想群殴”模型好像就是具有无穷大射程的射手互相攻击。因此,我将其称为“理想远程单位的战斗模型”。一个单位是“理想远程单位”当且仅当它是:1. 是射程无穷大的射手,2. 准确率为100%,3. 飞行武器飞行时间和起箭延迟为0。(不知道什么是起箭延迟?回忆一下精锐蒙古突骑为什么比靶场的弓骑兵好用很多……)不难看出,“理想远程单位的战斗模型”就是对战双方均为“理想远程单位”的模型。
    (思考题:如果我们假设对战双方为:1. 是近战单位,2. 体积为0,3. 速度为无穷大。这种假设与“理想远程单位”假设是否等效?)

理想远程单位假设 - 单位是射程无穷大的射手,准确率100%,飞行武器飞行时间为0,起箭延迟为0.
理想远程单位战斗模型 - 零走动耗时的理想群殴模型,等效于所有参战单位都是理想远程单位的战斗模型。

    下面正文开始,各位读者做好准备。注意:不想看数学推导的读者请直接阅读结论。
    在以下所有问题中,1. 假设所有单位是理想远程单位,2. 不考虑护甲、附加攻击、起步延迟等任何其他问题。
    符号:[·]为向上取整函数——[x]=max: y∈Z s.t. yx。示例:[2]=2, [2.5]=3, [2.99]=3, [3]=3,[3.01]=4.

问题1 - 等攻击间隔的理想远程单位一对一单挑(1 vs 1)
    假设蓝方拥有一个A型弓兵,生命值为H1,攻击力为A1,红方拥有一个B型弓兵,生命值为H2,攻击力为A2。双方攻击间隔均为1。问蓝方战胜红方的条件是?
解:A杀死B需要[H2/A1]次攻击,B杀死A需要[H1/A2]次攻击。故蓝方战胜红方当[H1/A2]>[H2/A1]。取等号时为双方同归于尽。

问题2 - 不等攻击间隔的理想远程单位一对一单挑(1 vs 1)
    假设蓝方拥有一个A型弓兵,生命值为H1,攻击力为A1,攻击间隔为C1,红方拥有一个B型弓兵,生命值为H2,攻击力为A2,攻击间隔为C2。问蓝方战胜红方的条件是?
解:同理可得条件为C2*[H1/A2]>C1*[H2/A1]。取等号时为双方同归于尽。

    可以发现,如果我们继续用这个思路建立多单位的战斗模型,会出现三个问题。
    1. 在攻击间隔不同且互相不成倍数的情况下,计算复杂度陡升。
        如果C1和C2不同且互相不成倍数,那么当我们计算多单位的战斗时,计算会变得极其麻烦,最后似乎无法得出简洁的公式。
    2. 取整符号的存在使得我们无法将同类单位的属性项移到不等式的同一边。这将难以引出对“战斗力”或“威力值”的良好定义。
    3. 如果单位在被杀死的一刹那发起一次攻击,那么我们必须选择是否判定其最后一次攻击有效。

    基于以上三个问题,我对模型进行一个简化,即加上“平滑攻击假设”。注意,这将损害模型的精度。

平滑攻击假设 - 假设攻击间隔为0,单位连续地,而不是离散地,对敌军造成伤害。在这种情况下,讨论攻击力将没有意义,因此我们用“单位时间攻击力”或“攻击率”的概念取而代之。
    通俗地说,假设有一个未升级的民兵A在攻击另一个未升级的民兵B。那么在真实的离散攻击模型下,B在t=0,t=2,t=4……等刹那瞬间收到4点的伤害。在平滑攻击模型下,我们把民兵A每两秒造成的4点伤害均摊到这整个两秒钟。于是民兵B在t=x秒时的残余生命值为40-2x。
    平滑攻击假设解决了上述的三个问题。因为不存在攻击间隔,所以第一个问题便自然不存在了。因为单位连续地进行攻击,在计算时间时也不需要取整符号了。同时因为单位在每个刹那输出的攻击力趋于0,一个单位在被杀死的刹那造成的伤害只能是0,因此第三个问题也解决了。以下我们讨论“理想远程单位的平滑攻击战斗模型”。Howerds在之前的帖子中实质上便在使用该模型。
    (思考题:平滑攻击假设在以下哪种情况下精度更高?A. 高血低攻 B. 低血高攻)
    下面我们便可以简洁地讨论多单位问题。

问题3 - 平滑攻击的单位进行理想依次单挑(1 vs N)
    假设蓝方拥有一个A兵,红方拥有N个B兵。A兵的生命值为H1,DPT(单位时间伤害力)为D1,B兵的生命值为H2,DPT为D2。A兵的最大受围攻数为1。求蓝方能杀死的B兵数量的最大值。
解:A兵杀死一个B兵的时间为H2/D1
    A兵杀死N个B兵的时间为N*H2/D1
    这段时间内,A兵受伤害为D2*N*H2/D1。故蓝方要赢必须要H1≥D2*N*H2/D1。
    整理得到N≤(H1*D1)/(H2*D2)

问题4 - 平滑攻击的理想远程单位进行理想一对多群殴(1 vs N)
    假设蓝方拥有一个A型弓兵,红方拥有N个B型弓兵。A兵的生命值为H1,DPT为D1,B兵的生命值为H2,DPT为D2。双方为理想远程单位(即最大受围攻数为无穷大)。求蓝方能杀死的B兵数量的最大值。
解:可以看出,这等效于A兵先单挑一个攻击力为N*D2的B兵,再单挑一个攻击力为(N-1)*D2的B兵,再单挑一个攻击力为(N-2)*D2的B兵……最后单挑一个攻击力为D2的B兵。
    注意到A兵杀死一个B兵的时间为H2/D1
    杀死所有B兵,A兵累计受伤害为(N+(N-1)+(N-2)+......+2+1)*D2*H2/D1=N(N+1)*D2*H2/(2*D1)
    要想A兵屹立不倒,必须有N*(N+1)/2≤(H1*D1)/(H2*D2)
    解得


    问题3和4所得到的解是近似的。如果我们加上“假设双方的攻击间隔相同”的条件而得到新问题5和6,则我们不必使用平滑攻击模型,使用离散攻击模型可以得到精确解。
    问题5的精确解取决于B型弓兵能否无缝衔接地前仆后继(即前后两个B型弓兵上场间是否允许A型弓兵休息完一个攻击间隔),以及B型弓兵阵亡的瞬间能不能射出一箭。为了使问题6能够沿用问题5的解法,我们假设B型弓兵换人时A型弓兵能够完整休息一个攻击间隔,并且双方都可以在阵亡的瞬间射出一箭。


问题5 - 等攻击间隔的单位进行理想依次单挑(1 vs N)
    假设蓝方拥有一个A兵,红方拥有N个B兵。A兵的生命值为H1,攻击力为A1,B兵的生命值为H2,攻击力为A2。A兵的最大受围攻数为1。双方的攻击间隔相等且大于等于B兵前仆后继的间隙。求蓝方能杀死的B兵数量N的最大值。
解:A兵杀死一个B兵需要攻击T=[H2/A1]次。故每杀死一个B兵,A兵损失生命值A2*T。
    如果我们允许A兵和最后一个B兵同归于尽,则A兵只需要承受住最后一个B兵的(T-1)次攻击。故需要H1>(N-1)*A2*T+A2*(T-1)。得,其中
    如果我们要求A兵必须在最后一个B兵杀死后仍然活着,则需要H1>N*A2*T。整理得,其中


问题6 - 等攻击间隔的理想远程单位进行理想群殴(1 vs N)
    假设蓝方拥有一个A兵,红方拥有N个B兵。A兵的生命值为H1,攻击力为A1,B兵的生命值为H2,攻击力为A2。A兵的最大受围攻数为无穷大。求蓝方能杀死的B兵数量N的最大值。
解:问题6可以看作A型弓兵先单挑一个攻击力为N*A2的B型弓兵,再单挑一个攻击力为(N-1)*A2的B型弓兵……再单挑一个攻击力为2*A2的B型弓兵,最后单挑一个攻击力为A2的B型弓兵。
    如果我们允许A兵和最后一个B兵同归于尽,则类似于问题5,我们有H1>N*A2*T+(N-1)*A2*T+...+2*A2*T+A2*(T-1)。整理得(N+2)*(N-1)/2<(H1-A2*(T-1))/(A2*T)。解得,其中    如果我们要求A兵在最后依然屹立,则需要H1>N*A2*T+(N-1)*A2*T+...+2*A2*T+A2*T。得N*(N+1)/2<H1/(A2*T)。解得,其中





(本集到此为止)

下(dai)集(tian)预(de)告(keng):

·平滑攻击模型的误差分析
·离散攻击的等攻击间隔理想远程单位进行理想多对多群殴(N1 vs N2)——是否允许“智能式齐射”至关重要
(智能式齐射:当你用40个长弓兵攻击40个村民时,你不将40个长弓兵一齐点向同一个村民,而是用恰好能够杀死一个村民的数目的长弓兵去攻击)
·
平滑攻击的理想远程单位进行理想多对多群殴(N1 vs N2)
·射程差异模型——远程单位对战近战单位(短射程单位的速度至关重要)
·有限受围攻数的情况——进一步得出远程单位的优越性
·大规模作战的Asymptotic分析——生命值平滑化(此处解微分方程得到兰开斯特公式)
·兵种定价问题——在RTS中,各兵种应该如何定价才是公平的?
·属性溢价问题——在RPG中,给主角多加一点HP,多加一点射程,多加一点速度,应该如何定价才是公允的?
·引入兵种相克后作战策略的博弈——对战时攻击优先级的纳什均衡、出兵时兵种训练策略的纳什均衡










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x

评分

参与人数 2耕战 +300 收起 理由
Howerds + 200 悬赏
一窍不开 + 100 分享交流

查看全部评分

愉悦的局部最优与全局最优矛盾定律:如果你选择在短期内每时每刻做最愉悦的事,则你在长期内将过得不怎么愉悦,如果你选择最大化你一生的愉悦值,则你必定每时每刻都不是很愉悦。
Shengun=Failed Philosophers, e.g. me.
回复

使用道具 举报

3

主题

1

精华

3131

积分

公爵

耕战
519
鹰币
28
天龙币
0
回帖
25
附庸关系0
 楼主| 发表于 2016-7-29 13:50:29 | 显示全部楼层
愉悦的局部最优与全局最优矛盾定律:如果你选择在短期内每时每刻做最愉悦的事,则你在长期内将过得不怎么愉悦,如果你选择最大化你一生的愉悦值,则你必定每时每刻都不是很愉悦。
Shengun=Failed Philosophers, e.g. me.
回复

使用道具 举报

8

主题

0

精华

631

积分

伯爵

耕战
65
鹰币
774
天龙币
0
回帖
353

活跃者翔鹰建站十周年纪念章

附庸关系0
发表于 2016-7-29 15:48:43 | 显示全部楼层
期待属性溢价和兵种定价问题的专业解答

点评

兵种定价的大概思路是给出每个兵种的战斗力计算公式,然后价格应该和战斗力成正比。属性溢价的大概思路是每种属性升级给单位增加的期望战斗力(面对每种敌人的战斗力和该敌人占比的乘积之和)应该和价格成正比。  发表于 2016-7-29 16:46
回复

使用道具 举报

144

主题

4

精华

1万

积分

宗主教

耕战
2738
鹰币
531029
天龙币
47
回帖
14734

翔鹰建站十周年纪念章二级帝国勋章一级嘉禾勋章翔六水王创意工坊通行证

附庸关系12
发表于 2016-7-29 16:14:21 | 显示全部楼层
可怕
问题1、2的向下取整其实应该是向上取整再-1吧
如果式子里包含等号就包含了同归于尽的情况吧
杀死所有B兵,A兵累计受伤害为(N+(N-1)+(N-2)+......+2+1)*D2*H2/D1=N(N+1)*D2*H1/(2*D1)

这个H1貌似应该是H2?不过最终结果应该是对的,除了没有取整……

另外期待楼主的续集~
回复

使用道具 举报

3

主题

1

精华

3131

积分

公爵

耕战
519
鹰币
28
天龙币
0
回帖
25
附庸关系0
 楼主| 发表于 2016-7-29 16:41:05 | 显示全部楼层
本帖最后由 阔比多华 于 2016-7-29 19:40 编辑
一窍不开 发表于 2016-7-29 16:14
可怕
问题1、2的向下取整其实应该是向上取整再-1吧
如果式子里包含等号就包含了同归于尽的情况吧


“这个H1貌似应该是H2?不过最终结果应该是对的,除了没有取整……”
H1我的确写错了,感谢指出。我将去修改。

我还没有做出平滑攻击模型的误差分析。不过,直觉来看,单位愈是趋于高血低攻,平滑攻击模型和真实离散攻击模型的误差就愈小。


如果使用离散攻击的真实模型,那么当双方的攻击间隔相等的情况下,很容易得到非常类似的公式(用相同的方法解带有取整号的不等式,同时考虑t=0瞬间发出攻击即可)。当双方的攻击间隔成倍数的情况下,应该也可以得到不甚复杂的公式。但是如果双方的攻击间隔不成倍数,得到的公式将非常复杂,可能没有直观的公式。如果双方的攻击间隔的商不是有理数,很可能没有精确的公式。

点评

我看你问题3取整了,也是在平滑攻击的假设下……  发表于 2016-7-29 18:02
愉悦的局部最优与全局最优矛盾定律:如果你选择在短期内每时每刻做最愉悦的事,则你在长期内将过得不怎么愉悦,如果你选择最大化你一生的愉悦值,则你必定每时每刻都不是很愉悦。
Shengun=Failed Philosophers, e.g. me.
回复

使用道具 举报

3

主题

1

精华

3131

积分

公爵

耕战
519
鹰币
28
天龙币
0
回帖
25
附庸关系0
 楼主| 发表于 2016-7-29 19:45:03 | 显示全部楼层
本帖最后由 阔比多华 于 2016-7-29 19:48 编辑
一窍不开 发表于 2016-7-29 16:14
可怕
问题1、2的向下取整其实应该是向上取整再-1吧
如果式子里包含等号就包含了同归于尽的情况吧

实在抱歉中午的版本BUG太多了。确实应该是向上取整再-1,问题4也确实应该对N取整。感谢指出。

目前的更新版修正了这些问题,然后新增了等攻击间隔的离散模型的情况。也希望大家检查一下是否有问题,谢谢!
愉悦的局部最优与全局最优矛盾定律:如果你选择在短期内每时每刻做最愉悦的事,则你在长期内将过得不怎么愉悦,如果你选择最大化你一生的愉悦值,则你必定每时每刻都不是很愉悦。
Shengun=Failed Philosophers, e.g. me.
回复

使用道具 举报

692

主题

16

精华

3万

积分

教皇

耕战
4052
鹰币
8172
天龙币
0
回帖
8751

一级皇家勋章智将勋章翔鹰建站十周年纪念章一级翔鹰勋章特级嘉禾勋章特级帝国勋章第一届火箭筒杯最佳剧情第一届火箭筒杯最佳创意第二届战鹰杯单人赛亚军鹰之王者

附庸关系1
发表于 2016-7-30 00:23:10 | 显示全部楼层
我等来了海森堡了吗
回复

使用道具 举报

83

主题

9

精华

11万

积分

宗主教

耕战
21563
鹰币
10968
天龙币
281
回帖
2821

翔鹰建站十周年纪念章三级帝国勋章特级翔鹰勋章三级嘉禾勋章雄鹰勋章第九届火箭筒杯优秀战役第九届火箭筒杯最佳新人第十届火箭筒杯最佳战役第十二届火箭筒杯最佳战役

附庸关系2
发表于 2016-7-30 02:38:06 | 显示全部楼层
本帖最后由 Howerds 于 2016-7-29 13:39 编辑

感谢接坑!关于目录的内容以前也想研究,但在多对多的时候遇上了瓶颈。我现在比较期待
平滑攻击的理想远程单位进行理想多对多群殴(N1 vs N2)

这一话题,感觉这是代数模型已经难以解决的,如果单位都一样的话估计可以以兰切斯特方程拟合……期待阔比突破。



PS. 害怕
Annie's Wonderland
第一章:海与山(已发布,点击进入)
第二章:杏花宵(已发布,点击进入)
第三章:沙漠之星(先行版已发布,点击进入)
终章:风神的歌谣(地图0% 触发0/1000 状态:未开始)
回复

使用道具 举报

11

主题

0

精华

523

积分

子爵

耕战
84
鹰币
1347
天龙币
0
回帖
125
附庸关系0
发表于 2018-7-12 18:13:23 | 显示全部楼层
看来半天就想知道到底是那个国家的远程兵最厉害,好像没答案
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-3-29 21:49 , Processed in 0.233135 second(s), 107 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表