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

news2025/6/11 8:08:04

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

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

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

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

第二关

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

第三第四关

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

第五第六关

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

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

w b u y i , k + f b u y i , k < = ∞ × ∑ j = 1 b f i , m j , 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=1bfi,mj,k(i=2..31,k=1..3)

w b u y i , k wbuy_{i,k} wbuyi,k f b u y i , k fbuy_{i, k} fbuyi,k 表示第 i i i 天第 k k k 位的玩家的水和食物购买量,那么 f f f 就记录了第 i i i 天 第 j j j 个区域第 k k k 个 玩家的停留情况。

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

2 × [ 1 + ⌊ s u m k = 1 3 f i , 14 , k 2 ⌋ ] × ( c w × w b u y i , k + c f × f b u y i , k ) < = m o n e y i − 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=13fi,14,k⌋]×(cw×wbuyi,k+cf×fbuyi,k)<=moneyi1,k(i=2..31,k=1..3)

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

图1 第六关地图

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

尾声

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现货黄金时间表怎么安排?

现货黄金交易时间表&#xff0c;最好每一个投资者打印一份出来&#xff0c;放在你的电脑旁边。为什么呢&#xff1f;以前我对现货黄金交易时间表也没有特别关心&#xff0c;为什么在二十四小时的全天候交易要花时间到这里面来呢&#xff1f; 黄金市场是一个全球性的市场&#x…

APP测试技术:ADB——安卓手机测试一座神奇的“桥”

前言&#xff1a; 近年移动互联网好比IT界的一条浩瀚银河&#xff0c;安卓手机测试可谓其中最璀璨的一颗明珠&#xff0c;这里有一座你不得不熟悉的桥--ADB 曾见过不少相关的文章或培训&#xff0c;不乏空谈多&#xff0c;实战少&#xff1b;期望大&#xff0c;效果差。也见过…

idea上传代码到GitHub,每一步附带注意事项(炒鸡炒鸡详细)

1. idea配置git 2. 在idea里面登录自己的GitHub账号 需要到GitHub生成token 点击后&#xff0c;翻到最底部&#xff0c;点击左侧导航栏的Developer settings&#xff0c;到达下面这张图 最后点击最底部的绿色按钮&#xff0c;然后复制token即可。 3. 在创建本地仓库&#xff0…

【强化学习基础】强化学习的基本概念:状态、动作、智能体、策略、奖励、状态转移

文章目录1.状态&#xff08;State&#xff09;2.动作&#xff08;Action&#xff09;3.智能体&#xff08;Agent&#xff09;4.策略&#xff08;Policy&#xff09;5.奖励&#xff08;Reward&#xff09;6.状态转移&#xff08;State transition&#xff09;7.智能体与环境交互…

生成模型6-重参数技巧

Stochastic Back Propagation &#xff08;Reparametrization Trick&#xff09; 本章主要介绍的是&#xff0c;神经网络用函数逼近器&#xff0c;那么我们将想想神经网络和概率图模型之间有什么关系呢&#xff1f;能不能用NN去逼近一个概率分布呢&#xff1f;把他们两结合到一…

如今的测试行业都怎么了?面试题有必要出这么难吗?

在测试行业摸爬滚打了十年左右的我&#xff0c;时不时会被公司要求去做面试官面试别人。在这段期间我也收到了不少的简历&#xff0c;面试了各种技术不一的人。许多候选人的工作年限都不少&#xff0c;基本都是在3~5年左右&#xff0c;但他们做的都是一些非常传统的项目&#x…

VB知识点-学业水平考试

目录 一、VB中常用的几个基本控件 二、VB工程常识 三、VB常用的基本数据类型​编辑 四、VB常用的标准函数 五、VB的基本运算 六、VB语句 &#xff08;1&#xff09;符号常量定义语句 &#xff08;2&#xff09;变量定义语句 &#xff08;3&#xff09;赋值语句 &…

BAT大厂Python面试题精选,看完后离拿到offer只有一步之遥(含答案)

Python是目前编程领域最受欢迎的语言。在本文中&#xff0c;我将总结华为、阿里巴巴等互联网公司Python面试中最常见的30个问题。每道题都提供参考答案&#xff0c;希望能够帮助你在求职面试中脱颖而出&#xff0c;找到一份高薪工作。这些面试题涉及Python基础知识、Python编程…

AOP注解方式进行增强接口

&#x1f4da;目录&#x1f4da;简介&#xff1a;&#x1f4a8;进阶版&#x1f5fa;️未实现AOP效果&#x1f3a2;创建注解&#xff1a;&#x1f4ad;创建注解切面&#x1f680;使用方式&#xff1a;&#x1f389;结束&#xff1a;&#x1f4da;简介&#xff1a; 需要对AOP有一…

【电商】电商系统---供应商管理

本文以电商系统中的供应商管理为讨论对象&#xff0c;分析了其中的管理、属性、流程等内容&#xff0c;希望能给你带来启发与思考。 前言 前天写了一篇“以商品流转了解系统模块”介绍&#xff0c;里面啰里啰唆的说了很多模块&#xff0c;每个都是系统的组成部分&#xff0c;都…

数字化程度持续推进,元宇宙逐步走向成熟

元宇宙是人类数字化生存的最高形态 根据观研报告网发布的《2022年中国元宇宙行业分析报告-行业现状与发展趋势分析》显示&#xff0c;元宇宙是一个平行于现实世界&#xff0c;又独立于现实世界的虚拟空间&#xff0c;是映射现实世界的在线虚拟世界&#xff0c;是越来越真实的数…

美国访问学者签证材料清单

美国访问学者签证材料清单&#xff1a; 1、有效护照&#xff1a;如果您的护照将在距您预计抵美日期的六个月内过期、或已损坏、或护照上已无空白的签证签发页, 请在前来面谈之前先申请一本新护照。 2、一张照片:于6个月内拍摄的5 X5厘米正方形白色背景的彩色正面照。请将照片用…

【多聚焦图像:GAN:无监督】

MFF-GAN: An unsupervised generative adversarial network with adaptive and gradient joint constraints for multi-focus image fusion &#xff08;MFF-GAN: 具有自适应和梯度联合约束的无监督生成对抗网络&#xff0c;用于多焦点图像融合&#xff09; 从梯度的角度来进行…

【蓝桥杯】第12届Scratch国赛中级组第7题 -- 博士汪出题

[导读]&#xff1a;蓝桥杯大赛是工业和信息化部人才交流中心举办的全国性专业信息技术赛事。蓝桥杯大赛首席专家倪光南院士说&#xff1a;“蓝桥杯以考促学&#xff0c;塑造了领跑全国的人才培养选拨模式&#xff0c;并获得了行业的深度认可。” 春雷课堂计划推出Scratch蓝桥杯…

业务中台的架构案例

业务中台目标 目标&#xff1a; 整体目标&#xff1a;高内聚、低耦合&#xff0c;便于开发和维护。五个方向&#xff1a;性能、可用性、扩展性、伸缩性、安全性。 原因&#xff1a; 单体架构的大泥球会导致业务迭代困难、无法针对性伸缩、故障没有隔离等问题&#xff0c;需要向…

Python核心编程三大神兽——迭代器、生成器 、以及装饰器

装饰器 装饰器概述 装饰器本质&#xff1a;函数闭包的语法糖&#xff0c;一个函数&#xff0c;该函数用来处理其他函数&#xff0c;在不改变源函数的情况下添加功能&#xff0c;装饰器的返回值可以是一个函数对象 使用场景&#xff1a;插入日志&#xff0c;事务处理&#xf…

网心科技入选亿欧《2022年中国边缘计算产业研究报告》

近日,亿欧智库对外发布了《2022年中国边缘计算产业研究报告》,《报告》公布了“边缘计算产业图谱”和“行业新锐:中国边缘计算技术领先企业榜单”两项,网心科技(OneThing)均成功入选,彰显了网心科技在边缘计算领域的技术实力和市场领先地位。 当前,边缘计算与千行百业的深度融合…

51单片机实训day2——创建Keil工程

以管理员身份打开软件&#xff01;&#xff01;&#xff01;以管理员身份打开软件&#xff01;&#xff01;&#xff01;以管理员身份打开软件&#xff01;&#xff01;&#xff01; 内 容&#xff1a;Keil工程创建 学 时&#xff1a;2学时 知识点&#xff1a;开发固件库介绍…

从英语翻译到人工智能:我如何用两年时间跨界转行

在这两年里&#xff0c;我经历了以下大大小小的里程碑&#xff1a; 2016 年初&#xff1a;在德国刚开始读英语语言学硕士没多久&#xff0c;萌生了转方向到计算机语言学&#xff08;Computational Linguistics&#xff0c;后来我才知道那与自然语言处理 Natual Language Proces…

【树莓派不吃灰】兄弟连篇⑦ 日志管理

目录1.日志管理1.1 日志文件的功能和分类1.2 日志文件保存位置和文件介绍1.3 内核及系统日志1.4 日志消息的级别1.5 日志记录的一般格式1.6 用户日志分析1.6.1 users 查看能登录的用户1.6.2 who,w查看在线登录的用户1.6.3 last,lastb查看登录成功的用户和登录失败的用户1.7 日志…