数学建模——从开题到放弃

本文分享了一次数模竞赛的经历,强调了建模过程中论文、算法和程序实现的紧密耦合。介绍了图的最小生成树算法(Prim和Kruskal)、重心法、谱聚类法,并提及模拟退火算法和遗传算法,尽管未实际应用。文章提供了相关MATLAB代码链接和参考资料。

上周末到这周三,和实验室的大腿们组队参加了数模竞赛,感觉那几天的朋友圈都被这张图刷屏了。

8846565-3285b5aefa903c0a.png

image.png

没错,就是这样!

如果说将各个看似毫无关系的条件罗列,逻辑从中剥离,这过程很艰难但也很有成就感的话。那么(因为题目表述不清或者其他各种各样的原因)一遍遍修正思路的过程,就很艰难又很挫败了。

队友们都很给力,勉强带动了我这个小坑货。
分工虽然不明确,但个人认为也明确不起来,因为这次建模的过程中“论文、算法、程序实现”几个部分耦合挺厉害的,而且中途多次修改方案,写论文的人如果不参与到算法中来,很难确切地描述思路,写算法的也需要有个人讨论,另外得夸一句小红的程序能力真是厉害,写起来又快又准。

接下来大致介绍一下本次建模时用到的一些算法吧。

一、图的最小生成树算法

图的最小生成树用于求解在多个点之间铺设线路的问题,当图中边的权是铺设线路的长度时,可以使得线路总长最短,而当边的权是线路的成本时,可以使得线路总花费最小。
就是因为一开始就知道有这个算法,我们才会选坑爹的F题的!
这个算法有两种基本的实现方法,分别是Prim算法和Kruskal算法。
Prim算法的思路是这样的:随机选择第一个顶点接入——>while(并非所有元素都接入)——>{寻找未接入的、与当前已接入顶点距离最短的顶点——>接入——>以新加入的顶点为起点,重新更新已接入的顶点与其他未接入顶点的最短距离}。
Kruskal算法的思路是这样的:假设总共有n个顶点,先则出所有边的起点、重点和权重——>按权重从小到大排序——>while(总边数<n-1)——>{边权重最小的顶点先接入——>如果新加入的两个顶点都在接入后的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值