数学建模竞赛(国赛和美赛)经验分享
第一次参赛是在大一的暑假参加的国赛,当时和两个同学刚刚组队,我们也没有什么基础,结果可想而知:无奖。在经历了这一次国赛之后,大一时的两位队友也无心再参加,所以又重新找了两位队友。从此我们队伍成员便确认了下来。这两位分别是一名女生负责排版,一名男生负责建模;而我负责写程序。我们一起准备第二年的国赛,在这期间,我们学校决定自己组织一次建模比赛为国赛做铺垫。我们为了检验自己的学习成果,便参加了。凭借着很好的运气,我们拿了二等奖的好成绩。时间不久,便到了国赛。在国赛期间,我们每天熬夜熬到很晚,有了一点想法之后就开始讨论,然后发现行不通,又开始讨论,再进行完善……就这么一直反反复复着。直到提交了论文的最后#在找队友的时候,一定要找靠谱的,自己熟悉的,千万不要临时组队。在准备竞赛这段时间,要经常沟通,彼此磨合,培养默契。在参加竞赛的时候,不免会讨论得过于激烈,千万不要烦彼此,因为只有交流彼此得思想才会进行碰撞,才有可能找到适合本队得解题办法。在分工方面,建议有一个人主要负责建模,一个主要负责编程,一个主要负责写论文和排版。三个人对建模、编程、排版都要了解,因为不知竞赛得的时候会有谁的工作量大一些,另外的人还可以去帮忙。三样都懂一些也可以更好的交流,更好的完成作品。
在准备建模比赛期间,要先了解常见的模型,比如:层次分析法,微分方程模型,线性规划、非线性规划和整数规划等。如果感觉自己不能完全吃透,可以先进行了解,在实际竞赛的过程中会查阅大量的资料,在短时间内去了解一个未知的领域,借鉴经典模型并进行完善,做出适合本问题的模型。下面推荐几本书:第一本是《数学模型》:
《数学模型》这本书很经典,讲了很多的经典模型。
第二本是《matlab在数学建模中的应用》;
第三本书是《数学建模算法与应用》。
负责编程的人至少要有一门自己擅长的编程语言,如MATLAB,Python等。建模过程中大部分人都是用MATLAB,但是也有不少人使用Python。MATLAB的工具包比较多,使用的人比较多。Python的话是库比较多。我个人是比较喜欢使用python的,但是Matlab也会一些。在平常的学习中要找到适合本队的题目,是数据分析题,还是优化的题目等。如果选择数据分析的话,就要对数据分析比较了解,需要掌握数据如何可视化,选什么图,才能更能够刻画数据的特点。如果不知道选择什么种类的图,可以参照下面的图:
还要熟悉数据处理的一些软件,如Excel,SPSS,python的某些库等。
当然算法是少不了的,如果时间紧,可以了解大概,明白算法的框架,常用算法有:常用的聚类算法、遗传算法、蚁群算法、粒子群算法、元胞自动机等。
排版是很重要的,能够给人第一印象,好的排版能给人带来美的享受。 有人使用Word来进行排版,那么就要学会Mathtype公式编辑器的使用;如果使用Latex进行排版,要好好学习语法,可以找找模板。论文中的流程图建议使用Visio来画。在学习排版的过程中,可以先大体看一下往年优秀论文的排版,学习学习。比如西文和数字使用Times New Roman字体会比较好看,又如自己去 探索 正文的行距是多少会感觉比较美观,三线表的磅数是多少会自己会感觉比较美观等。
不知道,你所说的赛是什么比赛,我比较熟悉的是大学生数学建模竞赛。在本科期间国赛和美赛都参加了两次,且获得了不错的成绩,特别在有了丰富经验以后,在最后一次美赛中,获得了最高奖(O奖)。
相比而言,美赛更难,原因如下:
其实这两个比赛的最大不同就是语言,还有不同就是在于背景不同。
国赛是以国内的实际问题为背景,关于其资料查询方便,阅读起来轻松快捷,但是问题都是一些新颖问题,没有现成答案,所以还是有难度。而美赛背景是美国文化,你得先搞清楚背景,然而国外资料也不易找到,并且文献全是英文,查阅起来不方便,速度迟缓。
另一方面语言不同,对于国赛,只要你弄出来,很快能写好。但是美赛,你把问题弄明白,还得转化为地道的英语,这是有技术含量的,这需要能力加时间。
另外,美赛有很多国家参加,而国赛参赛人数比较少,并且很多厉害的大学基本不参加国赛而是参加美赛,所以美赛是参赛人数多,质量高。美赛是四天三夜而国赛是三天两夜。综上,美赛更难!
关于美赛2023比赛时间中国如下:2月16日至2月20日举行
建模美赛队伍的组建要求与国赛一样,也是由建模手、编程手与论文手构成。三个队友各司其职,各有侧重,共同完成一篇论文。
建模手:建模手负责依据题目要求建立恰当的数学模型,对于模型及理论的理解要更加深入,通常更加适合数学专业或者统计专业的同学;编程手:编程手负责对模型进行求解,得到题目所要求的结果,对于计算机编程能力的要求较高,通常由计算机专业或者软件相关专业的同学;
论文手:论文手负责将选取的模型以及相关算法的思路以文章的形式展现出来,最终完成一篇论文,论文手对于所在专业没有太高要求,但对于总结归纳能力以及逻辑思维水平的要求较高。各位同学可以全面衡量自己所擅长的方向,选择最适合自己的“角色”。
团队的知识储备关于美赛的模型方面,团队在各类问题中都应掌握一些常见的模型,如:综合评价问题中的模糊评价法、层次分析法、主成分分析法;
分类判别问题中的系统聚类法、密度聚类法;预测问题中的时间序列预测、马尔可夫预测;优化控制问题中的线性规划、整数规划等。在各类模型中做到游刃有余,心中有数。
数学建模中需要的软件关于编程方面,团队中应至少有一个成员对matlab或python等编程软件比较熟悉,能够对选择的模型进行求解、改进;
对于写作方面,应该至少对latex或word写作比较熟悉,能够完成论文的排版工作。由于美赛提交的论文是英文论文,团队中最好有成员有较好的英文基础,能够对文章进行翻译。
无总结反省则无进步
写这篇文章,一是为了总结之前为了准备美赛而学的算法,而是将算法罗列并有几句话解释方便以后自己需要时来查找。
数学建模问题总共分为四类:
1 分类问题 2 优化问题 3 评价问题 4 预测问题
我所写的都是基于数学建模算法与应用这本书
一 优化问题
线性规划与非线性规划方法是最基本经典的:目标函数与约束函数的思想
现代优化算法:禁忌搜索;模拟退火;遗传算法;人工神经网络
模拟退火算法:
简介:材料统计力学的研究成果。统计力学表明材料中不同结构对应于粒子的不同能量水平。在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(此过程称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体。
思想可用于数学问题的解决 在寻找解的过程中,每一次以一种方法变换新解,再用退火过程的思想,以概率接受该状态(新解) 退火过程:概率转化,概率为自然底数的能量/KT次方
遗传算法: 遗传算法是一种基于自然选择原理和自然遗传机制的搜索算法。模拟自然界中的生命进化机制,在人工系统中实现特定目标的优化。
遗传算法的实质是通过群体搜索技术(?),根据适者生存的原则逐代进化,最终得到最优解或准最优解。
具体实现过程(P329~331)
编码
确定适应度函数(即目标函数)
确定进化参数:群体规模M,交叉概率Pc,变异概率Pm,进化终止条件
编码
确定初始种群,使用经典的改良圈算法
目标函数
交叉操作
变异操作
选择
改良的遗传算法
两点改进 :交叉操作变为了以“门当户对”原则配对,以混乱序列确定较差点位置 变异操作从交叉操作中分离出来
二 分类问题(以及一些多元分析方法)
支持向量机SVM
聚类分析
主成分分析
判别分析
典型相关分析
支持向量机SVM: 主要思想:找到一个超平面,使得它能够尽可能多地将两类数据点正确分开,同时使分开的两类数据点距离分类面最远
聚类分析(极其经典的一种算法): 对样本进行分类称为Q型聚类分析 对指标进行分类称为R型聚类分析
基础:样品相似度的度量——数量化,距离——如闵氏距离
主成分分析法: 其主要目的是希望用较少的变量去解释原来资料中的大部分变异,将掌握的许多相关性很高的变量转化成彼此相互独立或不相关的变量。通常是选出比原始变量个数少,能解释大部分资料中的变异的几个新变量,及主成分。实质是一种降维方法
判别分析: 是根据所研究的个体的观测指标来推断个体所属类型的一种统计方法。判别准则在某种意义下是最优的,如错判概率最小或错判损失最小。这一方法像是分类方法统称。 如距离判别,贝叶斯判别和FISHER判别
典型相关分析: 研究两组变量的相关关系 相对于计算全部相关系数,采用类似主成分的思想,分别找出两组变量的各自的某个线性组合,讨论线性组合之间的相关关系
三 评价与决策问题
评价方法分为两大类,区别在于确定权重上:一类是主观赋权:综合资讯评价定权;另一类为客观赋权:根据各指标相关关系或各指标值变异程度来确定权数
理想解法
模糊综合评判法
数据包络分析法
灰色关联分析法
主成分分析法(略)
秩和比综合评价法 理想解法
思想:与最优解(理想解)的距离作为评价样本的标准
模糊综合评判法 用于人事考核这类模糊性问题上。有多层次模糊综合评判法。
数据包络分析法 是评价具有多指标输入和多指标输出系统的较为有效的方法。是以相对效率为概念基础的。
灰色关联分析法 思想:计算所有待评价对象与理想对象的灰色加权关联度,与TOPSIS方法类似
主成分分析法(略)
秩和比综合评价法 样本秩的概念: 效益型指标从小到大排序的排名 成本型指标从大到小排序的排名 再计算秩和比,最后统计回归
四 预测问题
微分方程模型
灰色预测模型
马尔科夫预测
时间序列(略)
插值与拟合(略)
神经网络
微分方程模型 Lanchester战争预测模型。。
灰色预测模型 主要特点:使用的不是原始数据序列,而是生成的数据序列 优点:不需要很多数据·,能利用微分方程来充分挖掘系统的本质,精度高。能将无规律的原始数据进行生成得到规律性较强的生成序列。 缺点:只适用于中短期预测,只适合指数增长的预测
马尔科夫预测 某一系统未来时刻情况只与现在状态有关,与过去无关。
马尔科夫链
时齐性的马尔科夫链
时间序列(略)
插值与拟合(略)
神经网络(略)
1,语义分析是编译过程的一个逻辑阶段, 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。比如语义分析的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,编译程序应报告错误。如有的编译程序要对实数用作数组下标的情况报告错误。又比如某些某些程序规定运算对象可被强制,那么当二目运算施于一整型和一实型对象时,编译程序应将整型转换为实型而不能认为是源程序的错误。
2,文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。将它们从一个无结构的原始文本转化为结构化的计算机可以识别处理的信息,即对文本进行科学的抽象,建立它的数学模型,用以描述和代替文本。使计算机能够通过对这种模型的计算和操作来实现对文本的识别。由于文本是非结构化的数据,要想从大量的文本中挖掘有用的信息就必须首先将文本转化为可处理的结构化形式。目前人们通常采用向量空间模型来描述文本向量,但是如果直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,那么这个向量的维度将是非常的大。这种未经处理的文本矢量不仅给后续工作带来巨大的计算开销,使整个处理过程的效率非常低下,而且会损害分类、聚类算法的精确性,从而使所得到的结果很难令人满意。因此,必须对文本向量做进一步净化处理,在保证原文含义的基础上,找出对文本特征类别最具代表性的文本特征。为了解决这个问题,最有效的办法就是通过特征选择来降维。
欢迎分享,转载请注明来源:品搜搜测评网