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的依赖。