2020国赛数学建模B题 穿越沙漠思路

Wesley13
• 阅读 755

赛题总体定位:运筹规划。

情景非常具体,数据需要少,需紧密结合情景具体建模,不要硬套模型。 编
程能力要求高一点。
三问都是优化模型,注意模型之间的关联。
注意点:

  1. 对游戏规则摸清楚,不要急着建模。
  2. 涉及到路线、事件的选择,使用 0-1 变量等定义模型。
  3. 最短路径基本可以数出来,考察的是最优路径以及路径前对资源的购买(收益最大)。
  4. 论文中多一点路线示意图,条件分析图。
  5. 代码需要跑出来,国赛会检查。
  6. 一些选择上可设置小心机。

第一问:

在第一关和第二关的探险过程中,运用初始的资金对于资源进行合理的分配,可以通过线性规划,确定好在未来一段时间的消耗与收益,制定好合理的规划,通过 MATLAB 计算出需要使用的资源。第一问的地图可以使用 TSP 算法,可以通过 LINGO 和 MATLAB 两个软件进行计算,选择出最优路径。也可以使用神经网络算法,来对于路径的选择进行训练,最终也可以得到最优路径。方法较多,仅供参考。经过多次训练对比,最终计算出最优策略,对比资金数量。第一问相对而言比较简单。

第二问:第二问与第一问相比提升了难度,如果玩家在进行策略安排的时候,

不知道天气的状况那么小伙伴们可以自己商讨给出何种方案,比如多买水,多买食物等等方法,再这之后通过选择最优路径进行合理的方法选择并讨论,解题方法相对比较固定。也可以使用神经网络算法进行训练,并给出一般的情况说明。第三关和第四关相对来说,地图位置更加复杂,需要通过 LINGO 算法对其进行合理编排,编写代码是一项比较困难的工作。

第三问:

(1) 对于n 名相同的初始资金,且同时从起点出发的玩家来说,游戏规则需要进一步注意规范,为了保证多方共赢,在天气状况已知的情况下, 可以通过先前 MATLAB 中的神经网络算法算出的最优旅行路线,计算多次的结果进行对比,保证不会出现重复的状况, 剔除掉重复出现的
次数。觉得次数比较慢,可以通过遗传算法、蚁群算法等来对其进行优化,体现模型的创新性。因为天气状况已知,所以相对比较好安排合理的路线,对于安排好的路线分别进行编号,再依次进行合理的计算,最终确定结果,

(2) 对于n 名相同的初始资金,且同时从起点出发的玩家来说,游戏规则
需要进一步注意规范,为了保证多方共赢,在天气状况未充分被知晓的
情况下,可以通过先前 MATLAB 中的神经网络算法算出的最优旅行
路线,分别对其进行最终受益进行计算,选择出比较合理的解决方案,
在一般情况下,第六关的地图也相对较为复杂,通过 LINGO 进行编
码,再带入模型中进行计算,再对理想化结果进行对比,确定两者之
间的差距,对于自身的资源进行调整,对于不同的地图,携带的资源
往往也会发生不同,那么就需要对其进行合理的解释即可实现题目要
求。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
ThinkPHP 根据关联数据查询 hasWhere 的使用实例
很多时候,模型关联后需要根据关联的模型做查询。场景:广告表(ad),广告类型表(ad\_type),现在需要筛选出广告类型表中id字段为1且广告表中status为1的列表先看关联的设置部分 publicfunctionadType(){return$thisbelongsTo('A
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这