一、十类常用算法

1. 蒙特卡罗算法。

  该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过 模拟来检验自己模型的正确性,几乎是比赛时必用的方法。

2. 数据拟合、参数估计、插值等数据处理算法。

  比赛中通常会遇到大量的数据需要处理,而处理数据 的关键就在于这些算法,通常使用 MATLAB 作为工具。

3. 线性规划、整数规划、多元规划、二次规划等规划类算法

  建模竞赛大多数问题属于最优化问题,很 多时候这些问题可以用数学规划算法来描述,通常使用 Lindo、Lingo 软件求解。

4. 图论算法

  这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以 用这些方法解决,需要认真准备。

5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法

  这些算法是算法设计中比较常用的方法, 竞赛中很多场合会用到。

6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法

  这些问题是用来解决一 些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。

7. 网格算法和穷举法

  两者都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本 身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具。

8. 一些连续数据离散化方法

  很多问题都是实际来的,数据可以是连续的,而计算机只能处理离散的 数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的。

9. 数值分析算法

  如果在比赛中采用高级语言进行编程的话,那些数值分析中常用的算法比如方程组 求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。

10. 图象处理算法

  赛题中有一类问题与图形有关,即使问题与图形无关,论文中也会需要图片来说明 问题,这些图形如何展示以及如何处理就是需要解决的问题,通常使用 MATLAB 进行处理。 以下将结合历年的竞赛题,对这十类算法进行详细地说明。

二、十类算法的详细说明

2.1 蒙特卡罗算法

  大多数建模赛题中都离不开计算机仿真,随机性模拟是非常常见的算法之一。 举个例子就是 97 年的 A 题,每个零件都有自己的标定值,也都有自己的容差等级,而求解最优的 组合方案将要面对着的是一个极其复杂的公式和 108 种容差选取方案,根本不可能去求解析解,那如何 去找到最优的方案呢?随机性模拟搜索最优方案就是其中的一种方法,在每个零件可行的区间中按照正态分布随机的选取一个标定值和选取一个容差值作为一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从中选取一个最佳的。方案的优劣取决于很多复杂的因素,不可能刻画出一个模型进行求解,只能靠随机仿真模拟。

2.2 数据拟合、参数估计、插值等算法

  数据拟合在很多赛题中有应用,与图形处理有关的问题很多与拟合有关系,一个例子就是 98 年美国赛 A 题,生物组织切片的三维插值处理,94 年 A 题逢山开路,山体海拔高度的插值计算等,观察数据的走向进行处理。此类问题在 MATLAB 中有很多现成的函数可以调用,熟悉 MATLAB,这些方法都能游刃有余的用好。

2.3 规划类问题算法

  竞赛中很多问题都和数学规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件、几个函数表达式作为目标函数的问题,遇到这类问题,求解就是关键了,比如 98年 B 题,用很多不等式完全可以把问题刻画清楚,因此列举出规划后用 Lindo、Lingo 等软件来进行解决比较方便,所以还需要熟悉这两个软件。

2.4 图论问题

  98 年 B 题、00 年 B 题、95 年锁具装箱等问题体现了图论问题的重要性,这类问题算法有很多,包 括:Dijkstra、Floyd、Prim、Bellman-Ford,最大流,二分匹配等问题。每一个算法都应该实现一遍,否则到比赛时再写就晚了。

2.5 计算机算法设计中的问题

  计算机算法设计包括很多内容:动态规划、回溯搜索、分治算法、分支定界。比如 92 年 B 题用分枝定界法,97 年 B 题是典型的动态规划问题,此外 98 年 B 题体现了分治算法。这方面问题和 ACM 程序 设计竞赛中的问题类似,推荐看一下《计算机算法设计与分析》(电子工业出版社)等与计算机算法有关 的书。

2.6 最优化理论的三大非经典算法

  这十几年来最优化理论有了飞速发展,模拟退火法、神经网络、遗传算法这三类算法发展很快。近 几年的赛题越来越复杂,很多问题没有什么很好的模型可以借鉴,于是这三类算法很多时候可以派上用 场,比如:97 年 A 题的模拟退火算法,00 年 B 题的神经网络分类算法,象 01 年 B 题这种难题也可以 使用神经网络,还有美国竞赛 89 年 A 题也和 BP 算法有关系,当时是 86 年刚提出 BP 算法,89 年就考了,说明赛题可能是当今前沿科技的抽象体现。03 年 B 题伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。

2.7 网格算法和穷举算法

  网格算法和穷举法一样,只是网格法是连续问题的穷举。比如要求在 N 个变量情况下的最优化问 题,那么对这些变量可取的空间进行采点,比如在 [a,b] 区间内取 M +1 个点,就是 a, a+(b−a)/M, a+ 2·(b−a)/M,··· , b 那么这样循环就需要进行 (M +1)N 次运算,所以计算量很大。
  比如 97 年 A 题、99 年 B 题都可以用网格法搜索,这种方法最好在运算速度较快的计算机中进行,还有要用高级语言来做,最好不要用 MATLAB 做网格,否则会算很久的。
穷举法大家都熟悉,就不说了。

2.8 一些连续数据离散化的方法

  大部分物理问题的编程解决,都和这种方法有一定的联系。物理问题是反映我们生活在一个连续的世界中,计算机只能处理离散的量,所以需要对连续量进行离散处理。这种方法应用很广,而且和上面的很多算法有关。事实上,网格算法、蒙特卡罗算法、模拟退火都用了这个思想。

2.9 数值分析算法

  这类算法是针对高级语言而专门设的,如果你用的是 MATLAB、Mathematica,大可不必准备,因为象数值分析中有很多函数一般的数学软件是具备的。

2.10 图象处理算法

  01 年 A 题中需要你会读 BMP 图象、美国赛 98 年 A 题需要你知道三维插值计算,03 年 B 题要求更高,不但需要编程计算还要进行处理,而数模论文中也有很多图片需要展示,因此图象处理就是关键。 做好这类问题,重要的是把 MATLAB 学好,特别是图象处理的部分。

数学建模竞赛中应当掌握的十类算法相关推荐

  1. 华为杯数学建模2020获奖名单_我校在2020年全国大学生数学建模竞赛中再获佳绩(内附获奖名单)...

    # 近日,从全国大学生数学建模竞赛组委会获悉,我校在2020年全国大学生数学建模竞赛中获得5项国家二等奖.国家奖获奖数量在全国农林院校中并列排名第二.在黑龙江省高校中位居第三名. 1 你的喜悦,我们的 ...

  2. 数学建模竞赛【必须要掌握的十个算法】

    数学建模比赛是本科生和研究生阶段最重要的比赛之一,包括全国大学生数学建模竞赛(俗称"国赛")和美国大学生数学建模竞赛(俗称"美赛").在这些比赛中取得好成绩,不 ...

  3. 电子科大计算机学院郑欣,我校研究生在“华为杯”第十六届中国研究生数学建模竞赛中获佳绩...

    近日,"华为杯"第十六届中国研究生数学建模竞赛颁奖大会在福州大学举行.电子科技大学参赛队伍斩获全国一等奖1项.二等奖14项.三等奖12项,获奖数量再创新高.本次赛事共有全国486个 ...

  4. 山东大学青岛计算机学院贺平,计算机学院学子在全国数学建模竞赛中再获佳绩...

    1月4日,全国大学生数学建模竞赛山东赛区颁奖会在青岛举行,计算机科学与技术学院学子再获佳绩,获奖111人次,其中全国一.二等奖各7人次,指导教师栾峻峰副教授获得山东赛区优秀指导教师称号. 2019年度 ...

  5. 2020研究生数学建模获奖名单_赞!浙商大研究生在全国研究生数学建模竞赛中喜获41个奖项...

    近日,"华为杯"第十七届中国研究生数学建模竞赛获奖名单揭晓.我校共有来自统计与数学学院.管理工程与电子商务学院.计算机与信息工程学院.金融学院等各学院的41支研究生队伍斩获奖项,其 ...

  6. 学生成绩预测模型_华中农大学子在美国大学生数学建模竞赛中获佳绩

    2020年美国大学生数学建模竞赛(MCM/ICM)成绩日前揭晓,在来自30多个国家和地区的20948支参赛队伍中,华中农业大学学子斩获佳绩,共获M奖(一等)4项.H奖(二等)17项. 来自工学院的李自 ...

  7. 如何在美国大学生数学建模竞赛中获奖?

    在本科期间,笔者共计参加三次美国大学生数学建模竞赛(简称美赛),先后获得S奖.M奖和F奖.美赛成绩的渐入佳境,让笔者有理由相信自己对美赛获奖有独特深刻的看法和相对有效的经验.出于为后来人铺路,助力后来 ...

  8. 数学建模竞赛中必须掌握的10个统计分析方法

    无论你在数据科学中是何种立场,你都无法忽视数据的重要性,数据科学家的职责就是分析.组织和应用这些数据. 著名求职网站 Glassdoor 根据庞大的就业数据和员工反馈信息,将数据科学家排名为美国最佳的 ...

  9. 数学建模竞赛中的两个技巧

    文章目录 1. 数据拟合与最优化方法 1.1. 数据拟合 1.1.1. 线性回归 fitlm 1.1.2. 多项式线性回归 regress 1.1.3. 多项式非线性回归 polyfit 1.1.4. ...

最新文章

  1. CVPR2021最佳论文:当GAN遇到3D场景,无需监督就学会“动态抠图”、360度展示对象...
  2. 评分卡模型、WOE(Weight of Evidence)和IV(Information Value)
  3. dell4600服务器不能启动
  4. c++中的队列_C ++中的队列
  5. 理解 zookeeper
  6. Skype for Business 2015全新部署_07.前端安装01
  7. k8s系列03-kubeadm部署calico网络的k8s集群
  8. matlab与计量经济学,matlab与计量经济学
  9. armbian编译安装mentohust 认证锐捷客户端
  10. 计算机硬件故障有哪些现象,计算机常见硬件故障症状现象分析及解决办法
  11. 新浪 java sdk_新浪微博Java SDK开发
  12. python创建子窗口_PyQt5实现从主窗口打开子窗口的方法
  13. 使用spyder查询帮助文档
  14. 产业分析:线上线下融合会展
  15. windows efi分区修复
  16. 2021-9-30 背景噪声的研究
  17. Spring、SpringMVC、SpringBoot及其插件学习笔记集合(持续更新中....)
  18. python 接收外部参数_python 接收处理外带的参数方法
  19. startuml如何画流程图_实例介绍用Visio画UML流程图方法
  20. 计算机作品三等奖——飞翔吧,七彩的梦

热门文章

  1. ForkLift 3.5.6 远程/本地文件管理利器
  2. RHEL认证:RHCSA
  3. 计算从出生到现在活了多少天
  4. 办公常用的计算机excel公式,Excel办公常用的12个神公式 职场必备
  5. 多张图带你彻底搞懂DNS域名解析过程
  6. oracle orderby多个字段,Oracle的order by关键字
  7. MATLAB界面打开只有左上角一个叉号x号
  8. Amazon SQS 消息相关接口测试用例
  9. TechSmith Camtasia2022屏幕视频录像
  10. 10 款开源的在线游戏,点开就能玩的那种