首页/文章/ 详情

LS-OPT中的代理模型_Kriging代理模型

1年前浏览1326

所有优化软件其实都大同小异,无非就是软件接口的多少和集成的算法的多少的区别。

软件其实很简单,我们自己都可以写,重要的是算法。

我就从比较好上手,又免费的LS-OPT软件开始我们的科学炼丹,在这里先恭祝各位早日得道。


首先打开我们的LS-OPT,我们可以看到这里有很多的元模型,或者叫代理模型来供我们选择。

从上到下,大致有响应面模型,前馈神经网络,径向基函数,克里金,支持向量回归。

什么是代理模型代理模型是指在分析和优化设计过程中可替代那些比较复杂和费时的数值分析的近似数学模型,也就是通过一定的方法去构建一个未知系统近似模型,也称为近似模型元模型代理模型方法可以大大提高优化设计效率、降低优化难度,并有利于实现并行优化设计。

在现有代理模型方法中,源于地质统计学的Kriging模型是一种具有代表性方法。

所以我们今天就先来讲Kriging模型,大家大致了解一下就可以了,想要深入了解的,可以去某乎看看。

Kriging模型就是从一系列观测点学习到空间场的值的分布情况(两两点的距离和值的相关关系,然后假设在空问场内该关系处处可用,通过计算待观测点和其余已知观测点的距离和我们得到的场内的关系从而得到待观测点和其余观测点的值的关系,从而得到场内所有的观测点对待观测点的一个影响因子,最后计算得到待测点的预测值。

知道了原理,下面我们就用python来实现一下Kriging算法。

这里我们要用到pyKriging包。

使用pyKriging的目的旨在简化代理模型的创建过程。下列例子演示了如何创建抽样计划、在这些位置评估测试函数、创建和训练一个Kriging模型、并且添加点来减少模型的均方根误差。

代码如下:

import pyKriging  

from pyKriging.krige import kriging  

from pyKriging.samplingplan import samplingplan


# The Kriging model starts by defining a sampling plan, we use an optimal Latin Hypercube here

sp = samplingplan(2)  

X = sp.optimallhc(20)


# Next, we define the problem we would like to solve

testfun = pyKriging.testfunctions().branin  

y = testfun(X)


# Now that we have our initial data, we can create an instance of a Kriging model

k = kriging(X, y, testfunction=testfun, name='simple')  

k.train()


# Now, five infill points are added. Note that the model is re-trained after each point is added

numiter = 5  

for i in range(numiter):  

    print 'Infill iteration {0} of {1}....'.format(i + 1, numiter)

    newpoints = k.infill(1)

    for point in newpoints:

        k.addPoint(point, testfun(point)[0])

    k.train()


# And plot the results

k.plot()

创建了20个抽样点

最后添加五个点来训练得到我们最终的Kriging模型







来源:FEAer
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-31
最近编辑:1年前
FEAer
本科 | CAE工程师 到点就下班的CAE打工人
获赞 71粉丝 96文章 79课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈