没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐

1
穿越沙漠的最佳策略
摘要
本文主要研究在穿越沙漠的游戏中如何设计不同地图和不同天气状况下的
行走方案使得在规定时间内到达终点,并保留尽可能多的资金。本文中所有初始
购买食物和水的数量原则为在起点买正好能够到达下一个村庄的水,在满足负荷
和资金的情况下,购买尽可能多的食物。因为食物单价高,可以减少在村庄补充
食物的资金。并且所有最终方案都已进行过负荷和资金数限制的检验。
针对问题一,对于第一关,以到达终点时的剩余资金数最大为目标函数,并
列出各个约束条件,然后借助 Excel 进行数据及逻辑分析,在满足约束条件的基
础上利用启蒙式算法进行计算机模拟,得到玩家的最优策略,最终的剩余资金数
为 10430 元,行走路线为 1→25→ 24→23(停留)→ 22→9(停留) →15(补充)
→13→14→13→15(补充)→9→21→27,剩余水和食物均为 0 箱。将第一关的模
型进行改进,即从矿山到村庄补给资源时,可以将食物和水放置在矿山,待补充
资源返回矿山后继续使用,以此来增加挖矿天数,改进后求得最终的剩余资金数
为 11030 元,行走路线等结果见附录。
对于第二关,类似第一关,只是游戏地图不同,通过编程得到最终的剩余资
金数为 12730 元,行走路线为 1→2→3→4(停留) →5→13(停留)→22→30(挖 2
天)→39→47→55(挖 4 天)→65(补水 185 箱,补食物 175 箱)→55(挖 8 天)
→63→64,最终剩余水 0 箱,食物 0 箱。
针对问题二,对于第三关,通过分析各种天气状况组合下的行走方案,发现
不经过矿山可以使最终的剩余资金数更多,通过 Floyd 算法求得最短路径,得到
行走路线为 1→5→6→1→3,通过编程分别求得在此路线上行走不同天数(3-10
天)最终剩余资源数的期望值(求期望值时初始购买物资按理论最优值进行购买,
但是现实中一开始并不知道后面的天气状况,所以一开始按照全部高温天气进行
购买初始物资更加合理),发现按照两种方法开始购买物资,都是行走 3 天可使
最终的剩余资源数最大,所以玩家的最优策略为行走路线为 1→5→6→13 且高温、
晴朗天气均不停留。
对于第四关,假设 30 天内出现 m 次沙暴天气。计算可知任何天气情况挖矿
都可获得收益,则玩家的策略为采用经过矿山挖矿→补给→挖矿的最优方案(挖
矿天数最大),最后回到终点。假设在最后一次挖矿前遇到沙暴天数为 t(t≤m)
天,那么玩家应当预留(3+m-t)天,确保能够回到终点。
针对问题三,对于第五关,与第三关分析类似,可知如果不挖矿能使玩家最
终的剩余资金数比挖矿更多。采用协商合作共赢方式,由最短路径原理可以确定
两名玩家行走路线为 1→5→6→13,另一名玩家的行走路线为 1→4(停留一天)
→7→12→13,其最终剩余资金数为 9425 元,另一位玩家的剩余资金数为 9510
元;如果玩家不协商合作,采取零和博弈,直接选取对自己最有益的策略。
对于第六关,同第四关分析类似求得起点到终点最短路径为 8 天。采用协商
合作共赢方式,平均分配三个人挖矿时间,相遇与沙暴天气均停留,第一名玩家:
1→2→3→8→13→18→ 23→24→25,第二名玩家:1→6→7→12→13→14→19,第三
名玩家:1→2→3→4→9→10→13;若玩家不协作,采取零和博弈,选取对玩家自
己最有益的策略。
关键词: 最优策略 目标规划 启蒙式算法 最短路径

2
一、问题重述
1.1 问题的背景
随着人们物质水平的提高,越来越多的人将玩游戏作为一个娱乐放松的方式。
对于穿越沙漠的小游戏,玩家拥有一张地图,并利用初始资金来购买水和食物,
从起点出发在途中会遇到高温、晴朗和沙暴三种不同的天气状况,沙漠中有矿山
和村庄,在穿越沙漠的途中可以在矿山挖矿补充资金,经过村庄或者在村庄停留
的时候可以利用现有的资金购买食物和水等物资。最终游戏的目标是在规定时间
内到达终点,并且最后保留尽可能多的资金。
1.2 问题的提出
1.2.1 问题一的提出
假设只有一名玩家,游戏过程中已经知道了每天的天气状况,试给出一般情
况下的最优策略。求解附件中的“第一关”和“第二关”,并将相应结果分别填
入 Result.xlsx。
1.2.2 问题二的提出
假设只有一名玩家,游戏过程中玩家只知道当天的天气状况,据此来决定当
天的行动方案,给出一般情况下玩家的最优策略,并对附件中的“第三关”和
“第四关”进行具体的讨论。
1.2.3 问题三的提出
目前有
n
名玩家,他们的初始资金相同,并且同时从起点出发。如果某一天
他们中的任意
k
名玩家均从 A 区域行走至 B 区域(A≠B),那么他们中任意一位玩
家消耗的资源数量都为基础消耗量的
2
k
倍;如果某一天有任意
k
名玩家在同一
处矿山挖矿,那么他们之中任意一位玩家消耗的资源数量都为基础消耗量的 3 倍,
并且每一名玩家通过挖矿获得的资金是基础收益的
1/
k
;如果某一天他们之中任
意
k
名玩家在同一处村庄购买资源,那么每箱价格都是基准价格的 4 倍。在其他
情况下消耗的资源数量和资源价格与单人游戏相同。
(1)假设在整个游戏时段内事先已经知道每一天的天气状况,每一名玩家
的行动方案需要在第 0 天确定,在此之后不能更改。试给出玩家在一般情况下应
采取的策略,并对附件中的“第五天”进行具体讨论。
(2)所有玩家只知道当天的天气状况,并且在某一天行动结束后均知道其
他玩家当天的行动方案以及剩余的水和食物的数量,然后确定各自下一天的行动
方案。试给出玩家在一般情况下应当采取的策略,并对附件中的“第六关”进行
具体讨论。
二、问题分析
2.1 问题一分析
对于问题一,只有一名玩家,玩家在游戏中每天天气状况事先都已知。题中
给出了游戏最终需要达到的目标:在规定的截止日期或之前到达终点,保留尽可
能多的资金。题中给出的游戏规则为约束条件,我们通过建立目标规划模型,就
可以找到满足约束条件下玩家的最优策略。
对于游戏第一关,地图中包含矿山和村庄,将基础收益与不同天气状况挖矿
的消耗量做比较,发现无论是高温、晴朗还是沙暴天气去挖矿都是可以获得收益
的,但是通过地图可以发现,起点离矿山特别远,路上消耗的也很多。此时我们

3
考虑两种方案,一类是不去矿山挖矿,直接去终点,另一类是去矿山挖矿,根据
自己的物资需要考虑是否去村庄挖矿、先去村庄买物资还是先去矿山以及去买几
次等问题。分别算出两类方案下的最优行走路径以及剩余资金数,最终剩余资金
数最大的方案即为最优策略。
对于游戏第二关,地图中包含两个矿山和两个村庄,并且每一个矿山都与一
个村庄相邻。将基础收益与不同天气下挖矿的消耗量做比较,发现无论是晴朗、
高温还是沙暴都可以获得收益。因此我们去矿山挖矿。有以下三类方案,第一类
在 55 号矿山挖矿,物资不足时到与它相邻的 62 号村庄进行购买;第二类方案是
在 30 号挖矿,物资不足时在与它相邻的 39 号村庄进行补充;第三类方案为在一
个矿山挖矿,物资不足时在与它不相邻的村庄进行购买。最终分别算出三种方案
下行走路径以及剩余资金数,最终选择剩余资金数最大的方案即为最优策略。
2.2 问题二分析
对于第三关,给出了游戏的截止日期为 10 天,在游戏时间内只会出现晴朗
和高温两种天气,不会出现沙暴这种天气,玩家只知道当天的天气状况,我们考
虑三种情况,第一种为每一天的天气状况都是晴朗;第二种为每一天的天气状况
都是高温;第三种为一般情况,我们可以通过计算机仿真来随机模拟每一天的天
气状况。在三种天气的情况下考虑是否挖矿,确定最优的行走路径。行走路径确
定后,通过求在这条路径上行走不同天数(3~10 天)下剩余的资金的期望值,确
定在这条路上停留几天的问题。最后就可以确定最优的策略。
对于第四关,首先通过参数设定表中基础消耗量以及基础收益进行简单计算,
判断出无论哪种天气下,去挖矿均可以获得收益。30 天内较少出现沙暴天气,我
们分两种情况考虑,第一种情况为大概率事件即为 30 天内未出现沙暴天气,由
于不知道每天的天气情况,我们可以通过计算机仿真来模拟每一天的状况。采用
与问题一相同的方法即可得到最优策略。第二种情况在 30 天内发生 m 次沙暴。
假设最后一次挖矿结束准备回到终点之前发生了 t 次沙暴,则我们保留(3+m-t)
天回到终点。
2.3 问题三分析
游戏中可以有 n 名玩家,有相同的初始资金且同时从起点出发。题中除了开
始给出的最基础的游戏规则,又增加了针对 n 名玩家的游戏规则。我们在进行 n
人游戏的时候,最好的结果是实现共赢,即制定的行走策略应当使 n 名玩家都满
意而不会发生争执。
对于第五关,玩家的个数为 2 个。在地图上,有一个矿山,没有村庄。我们
可以考虑三种情况,第一种是两名玩家均不挖矿;第二种是一名玩家挖矿、另一
名玩家不挖矿;第三种是两名玩家均挖矿。再分别讨论三种情况下,两名玩家到
达终点时的剩余资金数;如果玩家不能协商合作,就采取零和博弈的方法,由于
不知道另外一名玩家的行走方案,忽略另外两名玩家的存在,直接选取对自己来
说最有利的方案。
对于第六关,玩家的个数为 3 个,并且玩家仅知道当天的状况,每名玩家在
当天行动结束后均知道其余玩家当天的行动方案和剩余资源数量,途中如果下一
天两个人会同天相遇,那其中一个人就停一天,等一天再走,另外再考虑挖矿只
之前遇到沙暴的天气,来确定第一个人早回去的天数。通过以上规则,来确定最
优的方案;如果玩家不能协商合作,就采取零和博弈的方法,由于不知道另外两

4
名玩家的行走方案,忽略另外两名玩家的存在,直接选取对自己来说最有利的方
案。
三、模型假设
1.假设沙漠中除了高温、晴朗和沙暴没有其他天气状况;
2.假设沙漠中不会发生影响玩家行程的其他突发状况;
3.假设题目给定的天气状况准确;
4.假设村庄中有足够的资源供玩家购买。
5.假设矿山有足够的矿供玩家去挖。
四、符号说明
符号 意义
i
p
第
𝑖
天的剩余资金数
i
x
第
𝑖
天水的箱数
i
y
第
𝑖
天食物的箱数
'
i
x
第
𝑖
天在村庄停留购买水的箱数
'
i
y
第
𝑖
天在村庄停留购买食物的箱数
M
上
限
负重上限
p
水
水的基准价格
p
食
物
食物的基准价格
m
水
每箱水的质量
m
食
物
每箱食物的质量
ddl
T
截止日期
k
挖矿天数
j
挖矿的基础收益
i
w
第
i
天的天气状况
i
w
c
水
不同天气状况下水的基础消耗量

5
i
w
c
食
物
不同天气状况下食物的基础消耗量
注:文中出现的其他符号将在出现时进行解释。
五、模型的建立与求解
5.1 问题一的分析与求解
5.1.1 模型的建立
问题 1 根据题目中给出的基本规则以及要达到的目标建立目标规划模型。
(1)建立各区域之间的邻接矩阵 A,第 i 行第 j 列元素表示游戏地图中的区域 i
与区域 j 是否相邻,若相邻则为 1,若不相邻则为 0。
0
1
ij
A
,
区
域i
与
区域j不相
邻
,区
域i
与区域j相邻
(2)确定目标函数
穿越沙漠最终的目标是在规定时间内到达终点,并保留尽可能多的资金,即
最后一天的剩余资金数
t
p
最多。
我们最终的资金来自于四部分:
a.第一部分来自于第 0 天买东西剩余的资金
0 0 0
( )
水 食物
p x p y p
其中
i
p
表示第i天的剩余资金数,
i
x
表示第 i 天水的箱数,
i
y
表示第i天食物
的箱数,第 t 天到达终点。
b.第二部分来自于在穿越沙漠过程中在矿山停留挖矿获得的资金
kj
;
其中 k 表示挖矿的天数,
j
表示挖矿的基础收益。
c.第三部分来自于在村庄购买水和食物的花费,这部分资金需要被减去。玩
家经过或在村庄停留时可以用剩余的初始资金或挖矿获得的资金随时购买水和
食物,但 是每箱价格为 基 准价格的 2 倍,所以在 村庄需要花费 的 资金为
2( ' ' )
水 食物
i i
x p y p ;
其中
'
i
x
表示第𝑖天在村庄停留购买水的箱数,
'
i
y
表示第𝑖天在村庄停留购买
食物的箱数,
p
水
表示水的基准价格,
p
食
物
表示食物的基准价格。
d.第四部分来自于玩家在到达终点后剩余的资源量。由于玩家到达终点后可
退回剩余的水和食物,每箱退回价格为基准价格的一半。因此最终没有使用的水
和食物转化的资金为:
1
( )
2
水 食物
t t
x p y p
。
由此得到最终的目标函数:
0 0 0
1
max ( ) ( ) 2( ' ' )
2
t t t i i
p p x p y p x p y p kj x p y p
水
水 水
食物
食物 食物
(1)
其中
i
p
表示第i天的剩余资金数,当 i=0 时表示初始资金。
i
x
表示第 i 天水
剩余47页未读,继续阅读







infinite_with
- 粉丝: 446
- 资源: 7
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- tensorflow-2.7.0-cp38-cp38-manylinux2010-x86-64.whl.zip
- tensorflow-2.7.0-cp38-cp38-win-amd64.whl.zip
- 强大的文章/社区/自媒体客户端源码分享 可打包app 支持小程序
- 《管理智慧》实践环节课程方案(刘祖云).zip
- 欧阳锋-2312021901.awb
- 仿悬赏猫悬赏任务系统运营版安装教程支付接口
- tensorflow-2.7.0-cp38-cp38-macosx-10-11-x86-64.whl.zip
- C#实现selectionSort.rar
- C#实现shellSort.rar
- C++逆波兰表达式求值.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论2