# 2020建模国赛B题
问题:2020建模国赛B题沙漠游戏
作者:[王子路](https://github.com/Prinway)、[羊山](https://github.com/seanys)、[李玏晨](https://github.com/lilechen)
单位:同济大学经济与管理学院-管理科学与工程系
获奖:全国一等奖
## 目录
- [问题介绍]($经验介绍)
- [资源配置问题求解 ](#资源配置问题求解)
- 问题介绍
- 求解思路
- [最优决策问题求解](#最优决策问题求解)
- 问题介绍
- 求解思路
- [动态博弈问题](#动态博弈问题)
- 问题介绍
- 求解思路
- [经验介绍]($经验介绍)
- [论文](#论文)
- [问题](#问题)
## 资源配置问题
### 问题介绍
一二关比较类似,均为单个玩家在天气确定的情况下进行决策,存在最佳的策略,将模型进行简化后,我们可以建立状态转移方程,通过动态规划求解最佳策略。
<img src="img/image-20201204124831706.png" alt="image-20201204124831706" width="500px" />
### 求解思路
建立状态转移方程和阶段损益函数,即可进行动态规划求解。
由于在起点处(第0天)存在不同的物资补给策略,这些策略会影响初始状态,进而影响游戏过程中的决策序列和最终结果。因此,使用多重搜索算法分别考虑第0天水和食物的补给,对第0天的所有补给策略进行搜索,每种补给策略对应一个初始状态。 确定初始状态后,使用动态规划模型计算出每种初始状态所对应的最优策略。最后,从所有初始状态所对应的最优策略中选出最优策略,即为关卡的全局最优策略。
在有村庄的地图中,村庄补给的策略过多大大增加了计算复杂度。因此,采用“先使用后记账”的策略对算法进行优化:允许资源存在缺口,每次经过村庄或到达终点时, 若资源存在缺口,则检查缺口是否可在上一次经过村庄时得到满足。若可以满足,则补上缺口,扣除资金,保证了补给的最低限度;若无法满足(超过负重或上次经过村庄时资金不足),则进行剪枝,停止此状态的继续递推。此外,考虑到模型的求解方向和状态转移函数的方向均为正向,求解过程中结合了记忆化搜索算法对经典动态规划算法加以改进。
<img src="img/image-20201206002546904.png" alt="image-20201206002546904" width="600px" />
<img src="img/image-20201206002606218.png" alt="image-20201206002606218" width="600px" />
## 最优决策问题
### 问题介绍
第三四关均为不确定决策问题,由于天气全部都不确定,这就导致决策问题比较复杂。我们需要将决策路径进行简化,对不同天气选择不同策略的收益进行分析,最后做出决策。
<img src="img/image-20201205230615056.png" alt="image-20201205230615056" width="500px" />
### 求解过程
首先建立整个的决策过程和约束方程。玩家一共有几个选项,选择直接前往终点,或者前往矿山/村庄后再前往终点;在整个过程中,需要满足确定的约束方程。
<img src="img/image-20201205231241723.png" alt="image-20201205231241723" width="700px" />
<img src="img/image-20201205231219556.png" alt="image-20201205231219556" width="700px" />
基于上述决策过程,对各个决策分析终止条件、挖矿条件等进行分析,我们可以发现在初始点购买的食物和水去挖矿是能够获得收益的,而在村庄购买的物资挖矿收益为负。同时进一步考虑到初始的购买,需要最大化最终能够挖矿的天数,但是由于天气的不确定性,可能会造成水和食物的失衡,但是通过计算可以得到,不管如何失衡,再去村庄买资源重新挖矿都是不划算的,最终可以获得以下结果:
<img src="img/image-20201205234112126.png" alt="image-20201205234112126" width="700px" />
第三关类似,按照某个购买策略,在天气全部是晴天时,恰好能够多挖一次矿,最优答案唯一。
## 动态博弈问题
### 问题介绍
第五关第六关均为多玩家参加问题,第五关的天气确定,第六关的天气不确定。而该问题的复杂性在于,玩家之间无法沟通,存在博弈关系,决策如果相同,会造成综合收益低,考虑到现实的博弈过程中,玩家都是有风险鹏好的,所以我们可以对玩家的风险倾向进行定义,再通过马尔可夫状态转移过程及蒙特卡洛模拟进行仿真,从而获得最终的分析。
<img src="img/第六关.png" alt="image-20201205222156701" width="500px" />
### 求解过程
设定风险偏好,建立不同风险偏好的状态转移方程,如下
<img src="img/image-20201205225952357.png" alt="image-20201205225952357" width="600px" />
使用蒙特卡洛模拟方法构建仿真程序,模拟不同风险接受程度的玩家的马尔可夫决策过程,进而探究风险接受程度的高低对玩家做出决策优劣的影响。
每一次模拟中,所有玩家除风险接受程度(状态转移概率)外的的初始条件完全相同,每位玩家的风险接受程度由程序随机指定。每一阶段,玩家考虑其他玩家的可能行动方向与自身从当前位置到终点的最优子策略是否存在冲突,若冲突则依据风险接受程度做出前往冲突点或绕路的决策。仿真过程中最优子策略的求解方法与问题一中的动态 规划求解方法相同。每一次模拟结束后,记录每位玩家的决策路径、最终剩余资金。若玩家由于资源或资金不足导致未能到达终点(游戏失败),则最终剩余资金为0。
对仿真结果进行分析,最终剩余资金最多的玩家中,同时也是当局游戏三位玩家中 风险接受程度最高的玩家的比例约为 40%(占比最高),这些玩家中,多数都是风险偏 好者和风险厌恶者。然而,仿真结果也显示,过高的风险接受程度带来的过多冲突将消 耗过多资源,导致游戏失败。为了探究合适的风险接受程度,对所有游戏失败玩家的风险接受程度进行统计,可绘制直方图并进行核密度估计,结果如图14所示。
<img src="img/image-20201205230207330.png" alt="image-20201205230207330" width="500px" />
## 经验总结
**组队情况**:全员大四年级
**赛前准备**:三个同学参赛经验不足,没有提前准备或者看过任何资料。但是有一些先修课程比如决策模拟、算法分析设计、运筹学、博弈论、优化方法等,课上做过一些Project,外加做过一些资源优化和决策问题的Project,看过很多该方面资料,小组两位同学都基本准备直博,做过一年时间的运筹方向科研
**选题方面**:当晚看到题目之后,C题门槛太低,A题不太熟悉,B题完全就在我们的擅长的领域上,简单讨论后果断选择B题
**论文编辑**:建议采用Latex的模板进行编辑,可以在github检索当年是否有最新的模板,比如[latexstudio/CUMCMThesis](https://github.com/latexstudio/CUMCMThesis),然后采用github云端私有仓库的方式,协同合作,各自完成修改同步到云端即可
**时间安排**:我们的时间安排比较从容,周四没做什么,第一二问周五开始做周六中午基本上做完了,也没熬夜,其中微信和Zoom沟通了一下新的发现和进度,第三问遇到了一些问题,大概周日中午做完了,周日中午下午也补充修改了第二问,然后周日下午搞定之后就提交了
**总结**:就我们队比赛的经验来看,因为这个国一是拿的还算比较轻松的,也没怎么熬夜和查资料,虽然坦白来说我们做的也不算那么满意,本质上数学建模比赛是使用数学工具解决现实问题,所以理论上来说,有比较好的通过代码、数据处理和建模解决遇到
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2020数学建模国赛B题沙漠游戏,同济经管小组论文介绍、源码、Latex论文,全国一等奖.zip (103个子文件)
cumcmthesis.cls 24KB
problem1_global.csv 60KB
problem2_global.csv 58KB
path.csv 21KB
weather.csv 18KB
game.csv 11KB
problem1_graph.csv 410B
problem4_graph.csv 393B
problem4_graph.csv 343B
problem6_graph.csv 227B
problem3_graph.csv 211B
problem3_graph.csv 172B
problem2_graph_simple.csv 129B
problem1_graph_simple.csv 73B
.DS_Store 10KB
.DS_Store 10KB
.DS_Store 10KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.gitattributes 66B
.gitignore 299B
穿越沙漠_page-0016.jpg 878KB
2020B-穿越沙漠_page-0001.jpg 863KB
穿越沙漠_page-0012.jpg 732KB
穿越沙漠_page-0025.jpg 721KB
穿越沙漠_page-0021.jpg 693KB
穿越沙漠_page-0009.jpg 682KB
穿越沙漠_page-0024.jpg 635KB
穿越沙漠_page-0010.jpg 618KB
穿越沙漠_page-0017.jpg 618KB
穿越沙漠_page-0003.jpg 618KB
穿越沙漠_page-0004.jpg 606KB
穿越沙漠_page-0001.jpg 603KB
穿越沙漠_page-0013.jpg 599KB
穿越沙漠_page-0020.jpg 574KB
穿越沙漠_page-0011.jpg 542KB
穿越沙漠_page-0022.jpg 534KB
穿越沙漠_page-0005.jpg 532KB
穿越沙漠_page-0014.jpg 514KB
穿越沙漠_page-0018.jpg 506KB
穿越沙漠_page-0019.jpg 490KB
穿越沙漠_page-0007.jpg 484KB
穿越沙漠_page-0015.jpg 484KB
穿越沙漠_page-0006.jpg 482KB
附件_page-0002.jpg 466KB
穿越沙漠_page-0008.jpg 452KB
2020B-穿越沙漠_page-0002.jpg 357KB
附件_page-0001.jpg 356KB
穿越沙漠_page-0023.jpg 337KB
附件_page-0006.jpg 295KB
附件_page-0004.jpg 287KB
附件_page-0005.jpg 255KB
附件_page-0003.jpg 229KB
穿越沙漠_page-0002.jpg 206KB
穿越沙漠_page-0026.jpg 111KB
README.md 10KB
README.md 3KB
沙漠游戏.pdf 1.31MB
沙漠游戏.pdf 1.31MB
p1_global.pdf 309KB
p2_global.pdf 304KB
附件.pdf 277KB
fair_game.pdf 232KB
2020B-穿越沙漠.pdf 219KB
kde.pdf 174KB
problem1&2-network.pdf 34KB
result.pdf 24KB
result1.pdf 22KB
result2.pdf 22KB
problem4-result.pdf 12KB
problem4-decision.pdf 12KB
problem3-result.pdf 11KB
problem6-game.pdf 11KB
problem5-network.pdf 10KB
problem4-network.pdf 10KB
problem3-decision.pdf 9KB
problem3-new-decision.pdf 8KB
problem3-network.pdf 7KB
image-20201205225952357.png 335KB
image-20201206002606218.png 316KB
参数.png 274KB
image-20201204124831706.png 252KB
image-20201205230615056.png 235KB
image-20201205224320658.png 224KB
image-20201204123934914.png 202KB
第六关.png 193KB
image-20201205225905585.png 138KB
image-20201206002546904.png 135KB
image-20201205234112126.png 125KB
image-20201205231219556.png 114KB
image-20201205231241723.png 105KB
image-20201205230207330.png 96KB
DP.py 16KB
modi-dijstra.py 4KB
illustrate.py 4KB
new-dijstra.py 2KB
problem3.py 816B
共 103 条
- 1
- 2
资源评论
好家伙VCC
- 粉丝: 2300
- 资源: 9142
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统项目全套技术资料100%好用.zip
- putty,linux客户端工具
- 丹佛丝堆垛机变频器参数配置起升、运行、货叉
- redhat-lsb-core,安装磐维数据库,安装oracle数据库等常用的依赖包
- lsb-release,安装磐维数据库,安装oracle数据库等常用的依赖包
- glibc-devel,安装磐维数据库,安装oracle数据库等常用的依赖包
- redhat-lsb-submit-security,安装磐维数据库,安装oracle数据库等常用的依赖包
- 可以在mac下开发的微雪esp32触摸屏开发板的支持包
- redhat-lsb-core,安装磐维数据库,安装oracle数据库等常用的依赖包
- redhat-lsb-core,安装磐维数据库,安装oracle数据库等常用的依赖包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功