“穿越沙漠”游戏下玩家的最优策略模型
摘要
“穿越沙漠”游戏要求玩家在规定时间内,利用手中的地图和初始资金,在起点和村庄购买物资,同时可以在矿山获得收益,每天需要根据不同的行为和天气消耗物资的规则下,合理安排行走路线、物质购买和挖矿安排以便能在终点获得最大的收益。本文根据每个问题不同的条件,建立对应的最优策略模型,并针对了具体的关卡进行了具体的分析。
针对问题一:经过分析,影响玩家决策的几个因素有持有资金、剩余水和食物、离目标地的距离和天气。本文将玩家游戏的天数、当前位置、剩余水、剩余食物设为玩家的状态,根据 Floyd算法化简地图后,得出几条可能的最优路线,再利用动态规划算法,求解在不同状态下玩家在终点时持有的最大资金。最终求得第一关的最优解为10470元,第二关为12730元。
针对问题二:本文利用马尔可夫链,建立马尔可夫链天气预测模型,根据第一关的天气转换情况预测其余关卡的天气情况。再根据问题一的模型得出在不同天气状况下玩家的最佳策略,利用对应的天气情况概率和最佳策略下的最大资金,可以得出最终收益的数学期望,选择数学期望最大的一条策略即可。最后模拟了关卡三和关卡四的天气情况进行求解,经过验证,该模型是合理的。
针对问题三:对于问题三的第一小问,我们根据不同策略的收益,确定玩家选择策略的倾向。我们以玩家到达每一个点的平均收益来代替问题1中的实际收益S,定义点与点间转移的最大收益为势函数,通过势函数得到点与点之间的转移概率,接着通过排列组合求解点与点间的数学期望,最后可以再次利用问题1的方法求解到终点时数学期望最大的策略即为最佳策略。
对于问题三的第二小问,本文根据完全信息的静态博弈论建立了占优策略模型。本文定义了玩家的收益函数A,该函数与玩家的决策,剩余时间,剩余资源,以及所处的位置距离终点、村庄的距离有关。当于资源、时间充足的情况下,玩家无论选择何种策略,都不能保证是占优的,这种情况的解决根据问题三(1),利用期望收益求解。而当资源或时间不足的情况下,在参与人数超过两人时,则先考虑可以占优的一方或多方,再利用期望收益求解无法占优的参与者们。
综上所述,本文依据各题所给的条件较全面地分析了相关因素对玩家决策的影响,并给出了不同条件下玩家的最佳策略,实现了在终点的最大收益。经过分析验证,本文的模型具有合理性和一定的现实意义。
关键词:动态规划 马尔可夫链 人工势能场 博弈论
1
一、 问题重述
1. 问题背景
穿越沙漠的游戏规则是玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和其他日常用品),从起点出发,在沙漠中行走。途中会遇到不同的天气,也可在矿山、村庄补充资金或资源, 目标是在规定时间内到达终点,并保留尽可能多的资金。
我们要在不同的游戏设定下给出玩家的最佳决策。
2. 需要解决的问题
问题一:假设只有一名玩家,在整个游戏时段内每天天气状况事先全部已知,试给出一般情况下玩家的最优策略。求解附件中的“第一关”和“第二关”, 并将相应结果分别填入 Result. xlsx。
问题二:假设只有一名玩家,玩家仅知道当天的天气状况,可据此决定当天的行动方案,试给出一般情况下玩家的最佳策略,并对附件中的“第三关”和“第四关”进行具体讨论。
问题三:现有n名玩家,他们有相同的初始资金,且同时从起点出发。若某天其中的任意k(2≤k≤n)名玩家均从区域A行走到区域B(B ≠A),则他们中的任一位消耗的资源数量均为基础消耗量的2k倍; 若某天其中的任意名玩家在同一矿山挖矿,则他们中的任一位消耗的资源数量均为基础消耗量的3倍,且每名玩家一天可通过挖矿获得的资金是基础收益 18₈;若某天其的任意k(2≤k≤n)名玩家在同一村庄购买资源,每箱价格均为基准价格的4倍。其他情况下消耗资源数量与资源价格与单人游戏相同。
(1)假设在整个游戏时段内每天天气状况事先全部已知,每名玩家的行动方案需在第0天确定且此后不能更改。试给出一般情况下玩家应采取的策略,并对附件中的“第五关”进行具体讨论。
(2)假设所有玩家仅知道当天的天气状况,从第1天起,每名玩家在当天行动结束后均知道其余玩家当天的行动方案和剩余的资源数量,随后确定各自第二天的行动方案。试给出一般情况下玩家应采取的策略,并对附件中的“第六关”进行具体讨论。
二、问题分析
1. 问题1
为了研究一般情况下单人玩家的最佳策略,我们需要分析影响玩家决策的因素。如图所示:
问题一中玩家的已知条件是规定时间内的天气和地图。关于距离的因素,玩家可以先化简地图,通过 Floyd算法得出起点、村庄、矿山和终点之间的最短路径从而减少多余的区域。接着可以利用动态规划算法,根据所在点、天数、水和食物的四个因素的影响递推得出在符合规则下到终点时的最大的持有资金。
2. 问题 2
第二题相比于第一题,玩家仅知道当天的天气状况,需要根据当天天气状况来决定当天的行动方案。因此我们需要首先判断能否将天气因素用其他影响玩家决策的因素来代替或者去除,即化简、整合合并决策因素。但经过初步分析,天气因素在影响玩家决策的因素中是不可或缺的。玩家需要根据未来天气情况,来做一个全局规划。
因此,我们需要考虑其他方法来解决这个问题。对于现有的相关因素一一当天天气,我们可以假设当天天气可影响明天天气,我们可以使用马尔可夫链来对未来天气进行预测。且根据马尔可夫链的概率收敛特性,在给定各天气跳转的概率下,我们可以最终得到一个收敛的天气概率,并基于此实现对未来天气的预测。
获得未来天气可能情况以及其对应概率后,我们根据第一问得到对应的最佳策略情况下的收益,并得到该情况下收益的数学期望。最终收益的数学
四、符号说明及名词定义
符号 |
定义 |
Lt'→t |
第t'天到第t天且到达点i的消耗的水和食物的价值 |
Mt'→t |
第t'天到第t天且在点i的挖矿的收益 |
St'→t |
第t'天到第t天且到达点i的净收益 |
Gw.,t,i |
第t天在第i个点, 有w箱水和f箱食物的最优解 |
Pij |
天气i转移到天气j的概率 |
Wm |
表示标志为m的一个有序天气集合 |
Hwraxi |
第t天在点i且携带w箱水和f箱食物时的势函数 |
Pt,j |
第t天, 玩家从点i到其邻点j的转移概率 |
E{,j |
第t天, 玩家从点i到其邻点j的净收益的数学期望 |
Ai(s) |
玩家i下一步行动的总收益函数 |
五、模型的建立与求解
1 问题一
1.1 问题一模型的建立
1.1.1 最简地图模型的建立
为了简化问题和减少后面利用动态规划求解问题的复杂度,我们可以先将地图转换为点和线的关系,即一个点代表一个区域,而相邻的区域用线连接表示可以到达。
之后我们可以继续简化地图,找出起点、村庄、矿山和终点两两之间的最短路径。求最短路径的问题我们可以先用 Floyd算法求解。
假设从节点i到节点j的最短距离为d;,j,而d₁,j不外乎两种可能:
1) 从节点i直接到节点j;
2) 从节点i经过若干个节点k到节点j。
则我们需要判断:
di,k+dk,j<di,j
其中k为图内所有节点。若上式中成立,则证明是上述的第二种可能,那么d;j重置为( di,k+dk,j,遍历完所有节点k后,d;,j即为所求最短距离。
求出最短距离后,只将起点、村庄、矿山和终点等目标地留下,线的权重的意义为从地点i到地点j需要t天。
最后将多余的线可以删去,例如若矿山->村庄->终点的距离和矿山->终点的距离相等,则我们可以将矿山->终点的这条线去掉,简化图。
1.1.2 基于动态规划的最佳策略模型的建立
在本题中,我们的最终目标是在物资充足的前提下在规定时间内到达终点且资金最大。而这个目标的复杂度太高,可以采用分治的思想,将大问题化解为小问题进求解,即用动态规划求解。
1) 水和食物的消耗
依据题意我们可以得到在第t天玩家水的基础损耗D1为:
D1t=5810 第t天为高温 (1)
|
同理在第t天玩家食物的基础损耗D12为:
|
第t天为晴天
第t天为高温 (2)
第t天为沙尘暴
而考虑到玩家的行为因素,除了需要考虑在矿山的停留时间外,在前往目标地点途中无需停留,因此玩家其实只有三种行为对应三个基础消耗的倍数:在沙尘暴时停留、行走、挖矿。 即:
σk=123 k = 行走 (3)
|
接着我们可以推出经过t天在第i个点,有w箱水和f箱食物时水的损耗为
|
(4)
其中 Δwᵗ'→t为从第t'天到第t天水的损耗,满足
Δwt'→t=∑k=t'tD1t×σk (5)
同理,可以推出第t天在第i个点,有w箱水和f箱食物时食物的损耗为
fcostw,f,t,i=fcostw',f',t',i+Δft'→t (6)
其中 Δfᵗ'→t为从第t'天到第t天食物的损耗,满足
Δft'→t=∑k=t'tD2t×σk (7)
2) 水和食物的损耗价值.
根据题目所给的信息,在村庄所购的水和食物的价格为在起点的两倍,则我们可以列出在第t'天到第t天且到达点i的消耗的水的价值为:
同理可得第t'天到第t天且到达点i的消耗的食物的价值:
则总消耗价值为:
Lit'→t=Wit'→t+Fit'→t (10)
3) 挖矿收益 Mit'→t
根据题目所得,每天的挖矿收益为m=3×m basic,则第t'天到第t天且在点i的挖矿收益为:
不挖矿时
(11)
挖矿时
4) 净收益 Sit'→t
根据题意和上述式子可得, Sit'→t由两部分构成,一是水和食物消耗的价值,二是由挖矿所得的资金