穿越沙漠第二关至第六关思路

开始讲题之前唠嗑一下:
很感谢所有读者和粉丝对上一篇的第一关解题博文的喜欢,也收到很多人的称赞,我很高兴大家能喜欢我写的东西。

其实这道题的模型在建立之处就是对着六关通用的目标去写的,因为本身三问六关都是同种问题:给一地图,给初始数据,求最多剩余资金。

所以如果理解了我第一关写的模型,其他关卡的模型稍微修改一下和换一下读取的数据就能直接用 LingoLingoLingo 求解。但是我也没有直接写明应该修改哪里,所以很多读者私信我有没有第二关的材料。我和其中一位读者详细分享了其他几关的思路,其实最主要是从第一关基础模型上慢慢升级约束得到,这里整理一起发布一下。

第二关

首先是第一大题,也就是第一关和第二关的求解。这两关是有最优解的,答案只有一个数字,第一关是10470,第二关是12730。解出这两个数字就是国二都稳了。第二关和第一关模型一样(改一下地区编号),只是写成代码时记得把多个村庄和多个矿山的情况改成数组循环的方式去遍历求解,LingoLingoLingo 代码别忘了声明村庄和矿山的集合。

第三第四关

和第一问的区别仅是天气组合不再给出,玩家每天醒来才知道新的天气。我们团队当时比赛的思路非常粗暴,但是高效。直接生成几份随机的天气数据,然后用第一问的模型直接跑,拿到的数据中会存在有解和无解的。针对这些数据,分析有解情况下,什么样的天气最影响最终答案;导致无解的情况有哪些天气组合。只有简单的步骤就可以写出很多有用的分析,还是节省大量比赛时间。

第五第六关

第三问涉及多位玩家,仅当矿山或村庄存在一位以上的玩家时,玩家的购买价格和挖矿收益会产生影响。那么首先找解题基础点,每个玩家的决策模型都是第一关的模型,区别在于如果当前地点是村庄,存在其他玩家,购买价格就要按四倍算,如果 kkk 个玩家一同行走到某个区域,行走消耗就要 2k2k2k,如果一起挖矿,挖矿收益就是 1/k1/k1/k 。那么这些都是数值上的变动,基础逻辑还是第一关模型那套。

第三问用 lingolingolingo 会比较复杂,因为这是非线性模型,反而用编程会比较简单。那么可以推理出出题人的意图就是希望通过第一关的引导,让你编出单人模式的程序,然后第三关使用多线程和资源共享的技术进行编程求解。实际上第三问也可以用第一关的模型修改出来。但是模型的约束要变为 kkk 倍。说下具体思路:第一关只有一个 fff 变量,第三问要改成 kkk 个 fff, kkk 通过写死的方式确定,比如先设 k=3k = 3k=3。那么其他地方怎么改?举例:每个玩家在村庄购买物资数量的约束:

wbuyi,k+fbuyi,k<=∞×∑j=1bfi,mj,k(i=2..31,k=1..3)wbuy_{i,k} + fbuy_{i, k} <= \infty \times \sum_{j = 1}^b f_{i,m_j,k} \quad (i=2..31, k = 1..3)wbuyi,k​+fbuyi,k​<=∞×j=1∑b​fi,mj​,k​(i=2..31,k=1..3)

wbuyi,kwbuy_{i,k}wbuyi,k​ 和 fbuyi,kfbuy_{i, k}fbuyi,k​ 表示第 iii 天第 kkk 位的玩家的水和食物购买量,那么 fff 就记录了第 iii 天 第 jjj 个区域第 kkk 个 玩家的停留情况。

这里已经表示出多玩家的约束了,某个玩家某一天的村庄购买量也表示了,那么购买消耗就很简单,只要当天有多个玩家的在村庄,购买消耗就是乘 444 倍不是乘 222,多个玩家表示的数量是大于等于222 ,但是不会超过3,那么构造一个分段函数,0 -> 0,1 -> 0,2 -> 1,3 -> 1,这样,每天每个玩家的购买花费约束就是:

2×[1+⌊sumk=13fi,14,k2⌋]×(cw×wbuyi,k+cf×fbuyi,k)<=moneyi−1,k(i=2..31,k=1..3)2 \times [1 + \lfloor \frac{sum_{k = 1}^{3} f_{i,14,k}}{2} \rfloor] \times (cw \times wbuy_{i,k} + cf \times fbuy_{i,k}) <= money_{i - 1, k} \quad (i = 2..31,k=1..3)2×[1+⌊2sumk=13​fi,14,k​​⌋]×(cw×wbuyi,k​+cf×fbuyi,k​)<=moneyi−1,k​(i=2..31,k=1..3)

这条约束是会根据当天 14 号村庄内的总玩家数,动态调整购买价格的系数。这也是第五第六关的关键:构造出能表示动态因素的约束。

图1 第六关地图

理解这一点后,就可以逐步把题意要求的所有约束写出来,和第一关一样,然后写完模型就交给论文手去写文,模型选手继续优化模型求解,编程选手就根据模型来编程序求解。因为这道题也是主观求解,没有标准答案,所以能构造出模型并结合数据进行合理分析,然后画图展示,就算完成题目了。

尾声

上面就是第二关到第六关的求解思路,还有比赛时的一些经验,希望能帮助到大家。

感谢大家看到这里,有问题可以私信或者评论讨论。

数学建模国赛 2020B-穿越沙漠 第二关至第六关思路分享相关推荐

  1. 2020年数学建模国赛B题题目和解题思路

    2020年数学建模国赛B题题目: 考虑如下的小游戏:玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和其他日常用品),从起点出发,在沙漠中行走.途中会遇到不同的天气,也可在矿山.村庄补充 ...

  2. 2020年数学建模国赛B题解题思路

    2020年数学建模国赛B题题目: 考虑如下的小游戏:玩家凭借一张地图,利用初始资金购买一定数量的水和食物(包括食品和其他日常用品),从起点出发,在沙漠中行走.途中会遇到不同的天气,也可在矿山.村庄补充 ...

  3. 备战数学建模国赛,快速搞定算法模型!

    全世界只有3.14 % 的人关注了 青少年数学之旅 说到数学建模,大家的第一反应就是国赛.美赛等数学建模比赛,但这只是冰山一角,不过这个反应却也很正常,因为很多小伙伴接触数学建模的契机,大部分还是因为 ...

  4. 2018年数学建模国赛B题 智能RGV的动态调度策略

    第一种情况大致思路: 每秒判断各个CNC的状态,若工作完成或者是出于空闲状态下则向RGV发出一个请求.同时,RGV每秒判断自己的状态(上下料.移动.闲置.清洗等),如果是处于闲置状态,则启用调度算法, ...

  5. 2022年数学建模国赛c题论文+代码(附详解)

    古代玻璃制品化学成分的分析与研究 摘要 古代玻璃极易受埋藏环境的影响而风化,并且在风化过程中,内部元素与环境元素进行着大量交换,导致其成分比例会发生变化,从而会影响对其类别的正确判断.玻璃在炼制的过程 ...

  6. 2019 数学建模国赛 C 题思路

    我最后一次数学建模国赛结束了. 今年选的C题,在这里讲一些关于我们的解题思路之类的东西. 今年看到题目以后果断选了C,但是中途想过要换B,因为找了一晚上C的数据,几乎找不到什么有用的,但最后还是继续做 ...

  7. 2018数学建模国赛回顾(国一)

    2018年数学建模国赛终于尘埃落定,第一次参赛,非常幸运地拿到了国一,在这里记录下这段难忘的经历,分享一些个人的看法心得. 其实严格来说,我从接触数模到参赛只有一个月左右的时间,我之所以能拿奖很大程度 ...

  8. 2019数学建模国赛总结

    前两天参加了19年数学建模国赛,今年和往年不同的是本科组增加了C题,以往只有两道题. 今年的a题是 高压油管的压力控制,感觉是一道工程类别的题,没有选,B题是 同心协力策略研究 ,是一道纯物理的题,也 ...

  9. 2020年全国大学生数学建模竞赛B题穿越沙漠问题——建立整数线性规划模型(ILP)——通过LINGO求解

    2020年全国大学生数学建模竞赛B题 穿越沙漠 题目是讲玩家在不同地图下穿越沙漠,所获得的资金数要最多(大概是这个意思).然后通过文章的描述又总结了N个约束条件.整体的思路就是对资金最大化作为目标函数 ...

最新文章

  1. OpenGL渲染流水中的处理步骤
  2. 1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】
  3. WindowsXp 平台安装Oversim+INET+OMnet++
  4. OMG,学它!mac怎么安装java插件
  5. 序列最小最优化算法(SMO) SVM凸优化求
  6. Android Studio 安装配置详细步骤,以及使用的基本操作
  7. 深度学习与围棋,零开始一步步实现自己的“AlphaGo”
  8. 九九乘法表打印Python
  9. [转载]每天早晨含姜片含出三大奇迹/姜的二十种食疗功/生姜克
  10. 企业级无线无缝漫游之思创漫游3.0 Plus ,三层漫游
  11. Java全栈(前端+后端)工程师学习路线
  12. Linux下安装VNC远程控制软件
  13. 宿主机如何和虚拟机WinServer2008的网络互通
  14. bcftools操作vcf文件
  15. 百度云重置服务器密码,单台或多台腾讯云服务器 CVM 重置实例密码教程
  16. SUST_2018 焦作站亚洲区域赛校内选拔赛题解
  17. Elastic App Search:免费的产品,可提供出色的搜索体验
  18. Redis的Java客户端
  19. 牟平一中高考成绩查询2021,牟平一中孔令宇考了702分,该学的时候学该玩的时候玩...
  20. Computer Systerm Architecture by M.Morris Mano学习笔记1:1.1-1.4

热门文章

  1. DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V
  2. 【Tensorflow】tensorboard log并排显示、同一窗口显示不同loss
  3. Spring Boot入门教程(四十一):微信支付集成-扫码支付
  4. 《缠中说禅108课》64:去机场路上给各位补课
  5. 视觉效果阿诺德渲染器Mac C4D R26 Arnold for Cinema 4D
  6. 我的程序员之路(14)——2018年度总结
  7. 抖音私信规则是什么?企业号私信有哪些注意?
  8. 有助于睡眠的产品有哪些?这些助眠好物能让你摆脱失眠
  9. 提高心性,做最好的自己——《活法》读后感
  10. 华为C8650刷机过程(获得ROOT权限)