2021年MathorCup高校数学建模挑战赛b题:三维团簇的能量预测(三等)

简介: 2021年MathorCup高校数学建模挑战赛b题:三维团簇的能量预测(三等)

摘要

团簇可以分为金属团簇和非金属团簇,由于金属团簇具有良好的催化性能,因此备受关注。但由于团簇的势能面过于复杂,同时有时候还需要考虑相对论效应等,所以搜索团簇的全局最优结构显得尤为困难。其中,传统的理论计算方法研究效率较低且非常耗时。因此,需要对这种方法加以改进,例如:考虑全局优化算法,结合机器学习等方法,训练团簇结构和能量的关系,从而预测新型团簇的全局最优结构,有利于发现新型团簇材料的结构和性能。本文根据团簇数据样本,通过机器学习和优化算法以及软件编程,对其数据进行处理和预测搜索,完成了以下几方面的问题:

针对问题一,首先,通过Python编程读取xyz文件将其整合,并求出原始数据平均值对缺失的155号数据进行填充。通过金团簇Au20的原子坐标、原子数目和团簇能量来预测金团簇能量,利用库伦矩阵和特征值提取转换成向量以满足机器学习算法,然后利用K近邻回归模型、随机森林回归模型、LightGBM回归模型算法对金团簇能量进行预测,通过MSE评价指标选取最优算法为LightGBM回归模型。最后利用粒子群优化算法与其结合搜索和预测出金团簇Au20的全局最优结构的能量为-1558.381512。

针对问题二,首先,根据金团簇Au20的结构,通过Monte Carlo方法和L-J势函数模拟生成异构体Au32的结构,重新训练LightGBM回归模型,然后利用基于LightGBM回归的粒子群优化算法预测出全局最优结构的能量为 -2484.139072。通过分析团簇的对称性以及平均键合能、一级解离能和二级解离能确定结构相对稳定。

针对问题三,同问题一,首先通过Python编程读取xyz文件将其整合,利用库伦矩阵和特征值提取转换成向量以满足机器学习算法且保证原始数据不丢失,然后利用随机森林回归模型、LightGBM回归模型算法对硼团簇能量进行预测,并且对两种模型进行网格搜索找到最优参数,来达到整体模型的偏差和方差的大和谐,通过MSE评价指标选取最优算法为随机森林回归模型。最后利用粒子群优化算法与其结合,搜索和预测出硼团簇B45-的全局最优结构的能量为-114059.5529096。

针对问题四,通过Python编程首先对硼团簇B45-的坐标通过排列组合列出40个坐标所有情形共有 C4540 个,然后根据L-J势能函数计算所有情形的势能,取势能最低的作为B40-的坐标。最后通过B40-的坐标训练随机森林回归模型,利用基于随机森林回归模型的粒子群优化算法找到硼团簇B40-的全局最优结构的能量为-101138.961718,最后分析稳定性较为稳定且比B45-稳定。

关键词:团簇;LGB回归模型;随机森林回归模型;蒙特卡洛;粒子群优化算法

一、问题重述 1

二、问题的分析 1

问题一的分析:问题一要求通过附件给出的1000个金团簇Au20的结构,建立金团簇能量预测的数学模型,并预测金团簇Au20的全局最优结构,描述形状。首先,观察所给原始数据,发现155号数据缺失,通过计算原始数据平均值对缺失值进行填补。其次,为满足机器学习算法的向量输入需求,通过库伦矩阵等方法将原子坐标进行转换,利用机器学习算法得到金团簇预测模型。最后,结合粒子群优化算法搜索和预测金团簇Au20的全局最优结构并画出图形。

问题二的分析:问题二要求在问题一的基础上设计算法,产生金团簇不同结构的异构体,自动搜索和预测金团簇Au32的全局最优结构,并描述其几何形状,分析稳定性。用Monte Carlo方法及L-J势函数模拟金团簇Au20异构体Au32的生成。并用基于LightGBM回归的粒子群优化算法搜索和预测金团簇Au32的全局最优结构并画出图形。通过分析团簇的对称性以及平均键合能、一级解离能和二级解离能分析其稳定性。

问题三的分析:问题三要求通过附件给出的3751个硼团簇B45-的结构,建立硼团簇能量预测的数学模型,并预测硼团簇B45-的全局最优结构,描述形状。同问题一为满足机器学习算法的向量输入需求,通过库伦矩阵等方法将原子坐标进行转换,利用机器学习算法得到硼团簇预测模型。最后,结合粒子群优化算法搜索和预测硼团簇B45-的全局最优结构并画出图形。

问题四的分析:问题四要求在问题三的基础上设计算法,产生硼团簇不同结构的异构体,自动搜索和预测硼团簇B40-的全局最优结构,并描述其几何形状,分析稳定性。首先对硼团簇B45-的坐标通过排列组合列出40个坐标所有情形,根据势能函数计算所有情形的势能[1],取势能最低的作为B40-的坐标。最后通过B40-的坐标训练模型,利用基于随机森林回归模型的粒子群优化算法找到硼团簇B40-的全局最优结构并画出图形。通过分析团簇的对称性以及平均键合能、一级解离能和二级解离能分析其稳定性。

三、模型假设 2

(1)数据样本中不存在不精确数据。

(2)团簇在空间中的平移或旋转都不会影响基于原子坐标的能量预测模型。

(3)使用原子直接的距离来描述体系的结构适用于当前团簇原子规模。

(4)基于原子坐标的机器学习模型可以一定程度上描述体系的对称性。

四、符号说明 2

五、模型的建立与求解 3

5.1 问题一:金团簇能量预测模型的建立和Au20全局最优结构的预测 3

5.1.1求解思路 3

首先,通过Python编程读取xyz文件将其整合,并求出原始数据平均值对缺失的155号数据进行填充。由于原始数据中只包含金团簇Au20的原子坐标、原子数目和团簇能量,因此要通过原子坐标和原子数目来预测金团簇能量,就需要一种描述方法将随机生成的结构信息表征成数值向量的模式,同时还要保证原始数据不能丢失,利用库伦矩阵和特征值提取转换成向量以满足机器学习算法,然后利用K近邻回归模型、随机森林回归模型、LightGBM回归模型算法对金团簇能量进行预测,通过MSE评价指标选取最优算法。最后利用粒子群优化算法与其结合搜索和预测出金团簇Au20的全局最优结构并画出图形。

5.1.2数据处理 4

5.1.3金团簇能量预测模型的建立与求解 5

5.1.3.1 K近邻回归模型的建立与求解

5.1.3.2随机森林回归模型的建立与求解

随机森林算法是Breiman[3]提出的群体分类模型的一种,能有效分析非线性、共线性和具有交互作用数据,在变量和数据的使用上进行随机化生成很多树,随机产生样本及节点变量,使得随机森林中的每一个棵树都不尽相关,进行bootstrap抽样,在原始训练样本集N中多次有放回地随机抽取n个新的训练样本集,生成n个分类树组成的随机森林,得到模型最优时的森林,当出现新样本时随机森林中的每一个树分别进行判断。

通过Python使用sklearn库调用随机森林回归算法进行金团簇能量预测,将在数据处理中得到的32×1维的特征向量作为特征变量,金团簇Au20能量作为目标变量,划分80%的训练集和20%的测试集进行求解。在sklearn中直接调用maen_squared_error( )函数计算MSE为0.458028,模型运行时间为2.342937秒。

随机森林回归模型使用便捷,特征无须做过多变换,具有较高精度,模型并行训练快;但结果不容易解释。

5.1.3.3 LightGBM回归模型的建立与求解

LightGBM(Light Gradient Boosting Machine)是微软亚洲研究所DMYK团队的一个开源的算法,李淑锦, 嵇晓佳[4]认为LGB回归模型基于直方图进行计算获得更高的速度和更高的效率,占用更少的内存,支持并行计算,并且由于缩减了训练时间因此可以进行大数据处理。LGB回归模型在计算时会将浮点型数值转化成离散型数值,从而生成了一个直方图。并且在图中累计离散数值统计量,降低占用的内存来找最佳分割点,算法流程图如图1.3所示。

8ea5c50f7ff084bc60c19e8682b164b.png

通过Python调用LightGBM回归算法进行金团簇能量预测,将在数据处理中得到的32×1维的特征向量作为特征变量,金团簇Au20能量作为目标变量,划分80%的训练集和20%的测试集进行求解。计算MSE为0.364445,模型运行时间为12.187506秒。发现LightGBM回归模型精度高,但训练时间长,模型复杂。

5.1.3.4金团簇能量预测模型的选取

将K近邻回归模型、随机森林回归模型和LightGBM回归模型预测准确率进行对比,如图1.4所示。

68d71994918358222928bff71518690.png

K近邻回归模型在三种模型中MSE最大,精确度较低,故在随机森林回归模型和LightGBM回归模型中进行选取,又比较算法的时间开销如表1.1所示

表1.1 算法时间开销


74ff3650c2347ca49eb70b810d956f8.png

综合考虑,选取LightGBM回归模型作为金团簇能量预测的模型。

5.1.4基于LightGBM回归模型的粒子群优化算法的建立与求解 7

5.2 问题二:金团簇不同结构异构体的产生和Au32的全局最优结构的预测 10

5.2.1求解思路 10

5.2.2基于Monte Carlo方法和L-J势函数的异构体Au32的生成 10

5.2.3基于LightGBM回归模型的粒子群优化算法的Au32最优结构预测与稳定性分析 12

5.3 问题三:硼团簇能量预测模型的建立和B45-全局最优结构的预测 13

5.3.1求解思路 13

首先,根据金团簇Au20的结构,通过Monte Carlo方法和L-J势函数模拟生成异构体Au32的结构,重新训练LightGBM回归模型,然后利用基于LightGBM回归的粒子群优化算法预测出全局最优结构。通过分析团簇的对称性以及平均键合能、一级解离能和二级解离能分析其稳定性[5]。

5.3.2数据处理 14

5.3.3硼团簇能量预测模型的建立与求解 14

5.3.4基于随机森林回归模型的粒子群优化算法的建立与求解 15

5.4 问题四:硼团簇不同结构异构体的产生和B40-的全局最优结构的预测 17

5.4.1求解思路 17

通过Python编程首先对硼团簇B45-的坐标通过排列组合列出40个坐标所有情形共有 个,然后根据L-J势能函数计算所有情形的势能,取势能最低的作为B40-的坐标。最后通过B40-的坐标训练随机森林回归模型,利用基于随机森林回归模型的粒子群优化算法找到硼团簇B40-的全局最优结构并画出图形。通过分析团簇的对称性以及平均键合能、一级解离能和二级解离能分析其稳定性。

5.4.2基于随机森林回归模型的粒子群优化算法的B40-最优结构预测与稳定性分析 17

六、模型评价与改进 18

对于问题一:问题一中选取了K近邻回归模型、随机森林回归模型、LightGBM回归模型对金团簇能量进行预测,随机森林回归模型和LightGBM回归模型准确度较高,运行时间较短,加快了粒子群优化算法搜索金团簇Au20的最优结构的速度。对于问题一只选取了三种机器学习模型而且并没有进行调参,对此增加了多层神经网络和支持向量回归模型并进行参数调优,发现LightGBM回归模型精确度最高为0.347896且运行速度较快。并对粒子群优化算法种群数和迭代次数扩大在其中加入金属对称性的约束条件,发现找到的最优结构更好能量更低。

对于问题二:在产生金团簇异构体时采取的是L-J势函数,对此进行改进采取LJ+AT势能函数发现产生的异构体更稳定,预测的最优结构对应的能量更低。

对于问题三、问题四:采取的是随机森林回归模型和LightGBM回归模型做比较选取对此进行改进,将随机森林回归模型和LightGBM回归模型进行融合发现效果更好。因为预测向量中的每个值都接近于真实值时,才能保证在进行局部优化或全局搜索时的方向和真实情况是一致的。所以建立算法置信度模型,置信度定义为预测误差小于给定允许误差的点所占的比例,这个比例越大,表明算法越可靠,从结果看在准确度方面是可行的。

七、参考文献 19

八、附录 20

第一题:

read_file_1.py:
import numpy
from scipy.spatial.distance import cdist
def read_xyz_comment(path):
    with open(path, 'r') as f:
        for i, line in enumerate(f):
            if(i==1):
                comment=float(line)
    return comment
def read_xyz_coords(path):
    elements = []
    coords = []
    with open(path, 'r') as f:
        for i, line in enumerate(f):
            if i < 2:
                continue
            ele, x, y, z = line.strip().split()
            point = [float(x), float(y), float(z)]
            elements.append(ele)
            coords.append(point)
    return coords
#计算库伦矩阵
def get_coulomb_matrix(numbers, coords, alpha=1, use_decay=False):
......

未完待续

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
机器学习/深度学习 自然语言处理 计算机视觉
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
【YOLOv8改进 - Backbone主干】VanillaNet:极简的神经网络,利用VanillaBlock降低YOLOV8参数
|
缓存 前端开发 搜索推荐
提升网站性能的10个实用技巧
在当今数字化时代,网站性能的优化至关重要,它直接影响着用户体验和搜索引擎排名。本文将介绍10个实用的技巧,帮助您提升网站的性能,包括前端、后端和服务器端的优化策略,以及一些常见的性能问题解决方法。
|
存储 JavaScript 前端开发
Web Storage和Cookie有什么区别?
Web Storage和Cookie有什么区别?
|
前端开发 Java 应用服务中间件
社区志愿者|基于Springboot+Vue实现社区志愿者平台系统(一)
社区志愿者|基于Springboot+Vue实现社区志愿者平台系统
593 0
|
域名解析 安全 对象存储
CDN访问异常篇之403错误
使用阿里云 CDN 加速站点访问后出现403错误,通常情况下可能是由域名配置、CDN安全策略以及源站响应403导致。CDN的Response Headers返回的错误字段明确标识了该403是什么原因引起的,本文详细介绍了CDN常见的引发403错误的问题场景。
14785 2
CDN访问异常篇之403错误
|
存储 前端开发 测试技术
Sui 从基础到编码实战
这篇文章详细介绍了Sui区块链的基础知识和实战应用,包括交易类型、共识引擎、Sui的优势、智能合约开发、安装Sui、包布局和语法、对象分类、NFT创建、对象包装、动态字段以及集合等概念。
706 2
Sui 从基础到编码实战
|
云安全 安全 算法
|
Linux Python
慎用Anaconda进行软件管理
装软件就跟插线一样 在Linux里面有一个巨大的梦魇就是软件包之间的依赖关系, 安装软件的时候各种依赖库找不到, 很让人抓狂.好消息是不同的Linux发行版提提供各自的依赖管理系统, apt/yum是目前比较常见的管理工具.
2067 0
|
Java 数据库连接 数据库
Spring Boot中的非阻塞式I/O实现
Spring Boot中的非阻塞式I/O实现
|
移动开发 前端开发 JavaScript
Vue2 系列:vue.config.js 参数配置
Vue2 系列:vue.config.js 参数配置
1461 2