穿越沙漠策略分析:动态规划与仿真建模

5星 · 超过95%的资源 需积分: 0 350 下载量 141 浏览量 更新于2024-07-15 37 收藏 980KB PDF 举报
"2020年全国数学建模竞赛B题是关于‘穿越沙漠’的策略分析,涉及数学建模、图论、序列最小化优化算法。该问题旨在找到最佳策略,使玩家在限定时间内到达终点,同时拥有最多的资金。论文涵盖了三个主要问题的解决方法:已知全部天气信息下的最优路径、仅知当日天气情况下的决策策略,以及考虑与其他玩家博弈时的优化策略。关键词包括动态规划、仿真、Dijkstra算法、Python和Matlab的运用。" 在本题中,玩家面临的主要挑战是如何在有限的资源和时间内有效地穿越沙漠。以下是具体的知识点详解: 1. **数学建模**: - **动态规划(Dynamic Programming)**:在问题一中,为了寻找使玩家拥有最多资金的通关策略,动态规划被用来求解最优路径。这是一种将大问题分解为子问题,通过建立状态转移方程并存储中间结果以避免重复计算的方法。 2. **图论(Graph Theory)**: - **邻接矩阵(Adjacency Matrix)**:地图中的各个点之间的关系被表示为邻接矩阵,用于记录点之间的连通性。 - **Dijkstra算法**:改良的Dijkstra算法用于找到地图中任意两点间的最短路径。原Dijkstra算法是一种解决单源最短路径问题的算法,适用于带非负权重的图。 3. **序列最小化优化算法**: - 在问题的解决方案中,可能涉及到序列最小化优化,例如在寻找最短路径和最优策略时,需要对成本进行最小化,确保玩家在满足条件的情况下,最大化资金积累。 4. **仿真(Simulation)**: - 在未知未来天气的情况下,通过模拟玩家的行为和决策过程,可以评估不同策略的效果。通过调整模型参数,如在问题二中,可以提高向终点方向移动的概率,以提高通关概率。 5. **策略优化**: - 在问题三中,优化策略包括扩大考虑的方案范围,包含部分次优解,以及增加初始购买资源以降低遭遇其他玩家导致失败的风险。 - 对于多人博弈的场景,通过调整模型参数,可以改善玩家的通关率和资金积累。 6. **编程工具**: - **Python和Matlab**:这两个编程语言在建模和算法实现中扮演重要角色。Python通常用于数据处理和算法开发,而Matlab则常用于数值计算和建模工作。 这些知识点展示了如何综合运用数学建模、图论和优化算法来解决实际问题,特别是在不确定性和竞争环境下制定策略。这样的建模方法在现实世界中有着广泛的应用,例如物流规划、交通网络设计、资源分配等。
6606 浏览量
国赛 终于到了国赛的日子,不过凑巧的是当时本人学院上学期疫情的考试安排在的本学期开始,这意味着我要开始边备考边建模,顶着挂科的压力放肆复习。 选题的话,之前说过了果断选的新颖B题(穿越沙漠)。 简单说下我们的思路: 我们对赛题的理解是这题情景非常具体,数据需要少,感觉三问都是优化模型,而且需要很强的编程。 首先我们分析题目,对游戏规则摸清楚,没有急着建模。 涉及到路线、事件的选择,使用 0-1 变量等定义模型。 最短路径用Floyd算法或者基本可以数出来,考察的是最优路径以及路径前对资源的购买(收益最大)。 第一问: 在第一关和第二关的探险过程中,运用初始的资金对于资源进行合理的分配,可以通过线性规划,确定好在未来一段时间的消耗与收益,制定好合理的规划,通过 MATLAB 计算出需要使用的资源。经过多次训练对比,最终计算出最优策略,对比资金数量。因为不确定答案是否正确,后来我们又用excel表格进行了推导,最后得到是12730,与优秀论文中的12760相比小了30块,估计大概因为这个答案的问题,没有国一。 第二问: 第二问与第一问相比提升了难度,如果玩家在进行策略安排的时候, 不知道天气的状况那么小伙伴们可以自己商讨给出何种方案,比如多买水,多买食物等等方法,再这之后通过选择最优路径进行合理的方法选择并讨论,具体的解决方法是通过编程和启发式算法的excel解决的。 第三问: (1) 对于n 名相同的初始资金,且同时从起点出发的玩家来说,游戏规则需要进一步注意规范,为了保证多方共赢,在天气状况已知的情况下, 可以通过先前 MATLAB 中的神经网络算法算出的最优旅行路线,计算多次的结果进行对比,保证不会出现重复的状况, 剔除掉重复出现的次数。因为天气状况已知,所以相对比较好安排合理的路线,对于安排好的路线分别进行编号,再依次进行合理的计算,最终确定结果,