1.2 数学建模算法与实现

1.2.1 数学建模算法分类

数学建模算法非常之多,大体上可以分为八类。

(1)规划模型

线性规划、整数规划、非线性规划、目标规划、二次规划、多目标规划、动态规划等。

(2)评价模型

层次分析法、模糊综合评价、熵权法、TOPSIS法、灰色关联分析、秩和比法、数据包络分析等。

(3)预测模型

回归模型、曲线拟合、灰色预测、时间序列分析、(隐)马尔可夫预测等。

(4)动态模型

微分方程模型、差分方程模型、偏微分方程模型、蒙特卡罗模拟、元胞自动机、排队论等。

(5)图论

最短路径、最小生成树、最小费用最大流、指派问题、旅行商问题、社会网络分析等。

(6)统计分析

分布检验、T检验、方差/协方差分析、相关分析、卡方检验、秩和检验、回归分析、结构方程、聚类分析、判别分析等。

(7)智能优化算法

模拟退火、遗传算法、蚁群算法、粒子群算法等。

(8)机器学习算法

正则化回归、Logistic回归、决策树、随机森林、XGBoost、神经网络、支持向量机、主题模型、关联分析、深度学习等。

这些算法都可以用于数学建模,在学习和使用算法时,应首先理解算法的原理和适合解决的问题,切记:要根据所解决的具体问题选择适用的算法,而不是一味地堆砌高大上的算法。

1.2.2 数学建模算法实现语言

软件或编程语言是工具,应当根据自身的编程知识储备来选择合适的工具。

不同类型的算法适合用不同的软件,大体来说:

●MATLAB(商业软件)是公认的通用全能的数学建模软件,近年来很多人也开始转向免费开源的R语言、Python。

●Lingo(商业软件)适合用来求解规划模型、优化模型,最容易实现,代码与模型公式基本一致;R语言、Python也提供了优化求解器方便接口。

●数据处理、统计分析,适合用R语言、Python或者SPSS。

●时间序列分析,适合用R语言、EViews、Python或者SPSS。

●智能优化算法,适合用MATLAB,或者Python、R语言也有扩展包可以实现。

●机器学习算法,适合用Python、R语言,深度学习适合用Python。

从商业软件过渡到免费开源软件是大势所趋,我们也有计划开发一个数学建模的R包,以“开发+整合”的方式实现各种常用的数学建模算法,从而降低数学建模领域对MATLAB的依赖。