基于静态博弈的穿越沙漠游戏最优策略

本文围绕穿越沙漠游戏,探讨在不同条件下的最优策略。针对单人已知天气、单人未知天气、多人游戏等情况分别分析。单人已知天气用Floyd最短路径模型;单人未知天气改进模型,以天气为首要变量;多人游戏是静态非合作博弈,用相关均衡理论求最优路径,还给出部分代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于静态博弈的穿越沙漠游戏最优策略

摘要

穿越沙漠是一款生存和盈利相结合的游戏,即玩家要在规则的限定下按时到
达终点,并尽可能使自己的收益最大化。收益最大化就意味着尽量避免因为天气、
时间、负重上限、路线规划等因素(以下统称“因素”)消耗不必要的资源。为
解决在因素的影响下如何能够保证每名玩家每轮游戏结束都获益最大的问题,本
文首先用 matlab 软件根据 Floyd 算法得出不考虑任何因素下的最短路径矩阵,为
后续分析问题奠定基础。
[^1]: mermaid语法说明

一、问题重述

有一如下的小游戏:玩家凭借一张地图,利用初始资金购买一定数量的水和
食物,玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和
其他日常用品),从起点出发,在沙漠中行走。途中会遇到不同的天气,也可在
矿山、村庄补充资金或资源,目标是在规定时间内到达终点,并保留尽可能多的
资金。
需要满足以下基本要求:
1、游戏开始时间为第 0 天,此时玩家位于起点。玩家要在截止日期前到达
终点,否则游戏结束。
2、玩家穿越沙漠所拥有的水和食物质量纸盒不能超过负重上限。若未到终
点水或食物耗尽,游戏结束。
3、每天的天气情况在所有区域内相同,为“晴朗”“高温”“沙暴”中的一
种。
4、玩家每天可从一个区域到达与之相邻的另一个区域,或选择原地停留。
沙暴日必须停留。
5、玩家停留一天的消耗量为基础消耗量,行走一天的消耗量为基础消耗量
的 2 倍。
6、玩家在起点以基准价格购买物资,可在起点停留或回到起点,但不可在
起点多次购买物资。玩家到终点后可按半价退回剩余物资。
7、玩家在矿山停留时,可挖矿获得资金,获得的资金称为基础收益。如果
挖矿,消耗量为基础消耗量的 3 倍;如果不挖矿,消耗量为基础消耗量。到达矿
山当日不能挖矿。沙暴日也可挖矿。
8、玩家在村庄购买物资时,价格为基准价格的 2 倍。
问题 1:只有一名玩家,游戏中每天的天气情况已知,分析最优策略。求解
附件中的“第一关”和“第二关”,并将相应结果分别填入 Result.xlsx。
问题 2:只有一名玩家,玩家仅知道当天的天气状况,并以此决定当天行走
方案,给出一般玩家的最佳策略。
问题 3:现有 n 名玩家,他们有相同的初始资金,且同时从起点出发。若某
天其中的任意 k(2≤ k ≤ n)名玩家均从区域 A 行走到区域 B(B≠ A),则他们
中的任一位消耗的资源数量均为基础消耗量的 2k 倍;若某天其中的任意 k
(2≤ k ≤ n)名玩家在同一矿山挖矿,则他们中的任一位消耗的资源数量均为基
础消耗量的 3 倍,且每名玩家一天可通过挖矿获得的资金是基础收益的 1/k;若
某天其中的任意 k(2≤ k ≤ n)名玩家在同一村庄购买资源,每箱价格均为基准
价格的 4 倍。其他情况下消耗资源数量与资源价格与单人游戏相同。
(1)假设在整个游戏时段内每天天气状况事先全部已知,每名玩家的行动
方案需在第 0 天确定且此后不能更改。试给出一般情况下玩家应采取的策略,并
对附件中的“第五关”进行具体讨论。
(2)假设所有玩家仅知道当天的天气状况,从第 1 天起,每名玩家在当天
行动结束后均知道其余玩家当天的行动方案和剩余的资源数量,随后确定各自第
二天的行动方案。试给出一般情况下玩家应采取的策略,并对附件中的“第六关”
进行具体讨论。

二、问题分析

第一问的分析

对于问题 1,只有一名玩家,且天气状况全部已知,要求给出一般情况下玩
家的最优策略,其实质就是考虑在不同路线下,玩家如何能寻找到最短路线且尽
可能赚到更多的资金。只有一名玩家便不用考虑其他玩家的干扰,天气状况已知
便能够针对天气状况对路线做出调整,避免不必要的资源消耗。针对这个问题,
在最优策略的思想中,选用 Floyd 最短路径模型[1],该模型在本题中的体现就是
先确定出在不考虑任何因素时的最短路径,在最短路径确定之后,进行因素的逐
个叠加,直到达到题目要求。

强调文本 强调文本

第二问的分析

问题 2 中与问题 1 类似,均只有一名玩家,但问题 2 中的天气情况未知。若
进行与问题 1 中相同的分情况讨论,则会因为天气因素造成结果的严重不准确。
因此对模型做改进,将天气作为首要变量。利用问题 1 中的天气情况用 Excel 中
的 rand 函数生成随机天气[2]进行分情况讨论。首先将情况分为从起点到终点和从
起点经过矿山再到终点两种,针对两种情况的最大消耗、平均情况和最小消耗分
别讨论,计算出其资金收益从而得出一般玩家的最优策略。
部分求解结果

第三问的分析

对于问题 3,玩家数量从一名增加到了 n 名,用相同的初始资金同一时间从
起点出发,且路线不能冲突,否则就会消耗更多的资源或获得更低的收益。此时
应该将侧重点放在路线规划上。玩家在规划自己路线的同时,也要兼顾其他人的
路线以免发生冲突,其本质上是玩家之间的一种博弈。路线规划作为一种博弈,
从时间序列来看,由于玩家之间并不知道彼此对于路线的规划,所以是一种静态
博弈;从博弈主体的关系来看,由于玩家之间相互不知情即不存在合作关系,目
标是寻求自己的利益最大化,所以是一种非合作博弈。因此,n 名玩家的游戏从
本质上来看是一种静态非合作博弈,基于静态非合作博弈的基本思想构建模型求
最优策略[3]。
第六关中信息缺失较多,所以为不完全信息静态博弈[4]。将纳什均衡[5]改进成贝叶斯均衡[6]
以求在信息不完全的情况下仍可以快速准确找到最优路径。

部分代码

function [F,path,MIN1,path1]=floyd(a,start,last)%定义权矩阵F,比较矩阵path、
path1
F=a;n=size(F,1);path=zeros(n,n); %问题矩阵
a,定义起点 start 终点 last
for i=1:n
 for j=1:n %遍历问题矩阵
 if F(i,j)~=inf %不可达 inf 表示
 path(i,j)=j;
 end,
 end,
end
for k=1:n``
 for i=1:n
 for j=1:n
 if F(i,k)+F(k,j)<F(i,j)
 F(i,j)=F(i,k)+F(k,j);
 path(i,j)=path(i,k); %比较路径并储存
 end,
 end,
 end,
end
if nargin==3
 MIN1=F(start,last);
 m(1)=start;
 i=1;
 path1=[ ];
 while path(m(i),last)~=last
 k=i+1;
 m(k)=path(m(i),last);
 i=i+1;
 end
 m(i+1)=last;
 path1=m;
19
end
end

第一次写博客,这次数学建模是和我们队友一起完成的,拿了个省一,虽然有点水,但对建模还是有了很大的理解。
思路就写这么多吧,大佬勿喷

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值