本资源提供2020年数学建模竞赛B题完整解决方案的Matlab程序代码,涵盖问题分析、模型建立及求解等过程,适用于参赛选手与科研工作者参考学习。
此代码是在为期四天的建模培训期间完成的。
第二关的求解方法与第一关基本相同,但更为复杂的是在第二关的地图中存在两个地图和两个村庄。因此,在哪个矿山挖矿以及选择哪个村庄补给物资成为了主要问题。解决这一关卡可以通过使用距离矩阵对数据进行处理整合,并利用单目标优化模型来计算玩家在规定时间内剩余的资金。最终通过Matlab编程对比分析不同方案,以求解出最佳方案。
对于第二题,题目仍然要求玩家在规定的时间内到达终点并使所剩资金数最大。然而与第一问的不同之处在于,玩家只知道当天的天气状况,这意味着天气是随机变量。在这种未知情况下规划利益最高的路线成为本关的关键。经过分析可以使用问题一中的天气分布概率来预测本题中的未知天气,并利用动态规划求解此题目。其中,在第三关中可以通过数学期望求解最优路线,在第四关则通过随机分布求解最优路线,以比较这两种方法的优劣性。值得一提的是,第三关的基本收益是200而不是1000,这可能会导致结果与预期有所不同。由于第三关的地图简单且时间只有十天,并不出现沙暴天气,因此挖矿需要慎重考虑。在不进行挖矿的情况下,考虑到模型较为简单可以使用穷举法比较求解出最大剩余资金的方案。