【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法

2024-03-11 00:20

本文主要是介绍【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法

在这里插入图片描述

一、LHS种类

1、LHS

使用随机搜索生成拉丁超立方体样本。LHS函数特别适用于非常大的设计,当本机MATLAB函数内存不足时。这可能取决于MATLAB版本和所用机器的配置。当尝试运行“lhsdesign”但未成功时,此功能最有用。设计的每一行代表一个点(或样本)。设计变量被规范化,使得超立方体点的值在0和1之间。它使用最大帧间距离算法进行迭代。

2、OLHS

OLHS生成优化的拉丁超立方体样本。它使用Jin等人(2005)提出的增强随机进化算法(ESEA)或Bates等人(2004)提出的遗传算法(GA)来解决优化问题。设计的每一行代表一个运行(或示例)。设计变量被规范化,使得超立方体点的值在0和1之间。

在ESEA和GA策略中,由于用于解决优化问题的启发式优化技术的随机性,所获得的实验设计可能会从一次运行更改为另一次运行。

参考文献:
Jin R, Chen W and Sudjianto A, “An efficient algorithm for constructing optimal design of computer experiments,” Journal of Statistical Planning
and Inference, Vol. 134, pp 268 287, 2005.

Bates SJ, Sienz J, and Toropov VV, “Formulation of the optimal Latin
hypercube design of experiments using a permutation genetic algorithm,”
45th AIAA/ASME/ASCE/AHS/ASC Structures, Structural Dynamics and Materials Conference, Palm Springs, CA, 19 22 April 2004. AIAA-2004-2011.

3、TPLHS

LHS=TPLHS(nPoints,nDV,seed)
TPLHS通过使用平移传播算法(TPA)生成拉丁超立方体设计。目标是在不使用形式优化的情况下获得最优(或接近最优)拉丁超立方体设计。该过程需要最少的计算工作量,并且结果实际上是实时提供的。该算法利用点位置模式,基于PHIp准则(最大距离准则的变体)进行最优拉丁超立方体设计。由一个或多个点组成的小构建块(称为SEED)用于通过在超空间中的简单平移来重新创建这些模式。在TPA的开发过程中进行的研究发现,(i)随着维度的增加,PHIp的分布倾向于降低值;以及(ii)通过TPA获得的拉丁超立方体设计代表了高达中等尺寸的最佳拉丁超立方体的有吸引力的替代方案。得出的结论是,对于多达六个维度(无论点密度如何),所提出的拉丁超立方体设计提供了最优拉丁超立方体的计算上廉价的估计。设计的每一行代表一个运行(或示例)。设计变量被规范化,使得超立方体点的值在0和1之间。
例如:

P=TPLHS(NPOINTS,NDV)
通过NDV矩阵生成NPOINTS,NPOINTS是点数,NDV是变量数。
在这种情况下使用的种子设计是放置在设计空间原点的单个点。P=TPLHS(NPOINTS,NDV,SEED):通过NDV矩阵生成NPOINTS,NPOINTS
是点数,NDV是变量数。SEED是用于构建ELHD的基本拉丁超立方体设计。
1乘NDV SEED不需要归一化。P=TPLHS(NPOINTS,NDV,NTRIALS):通过NDV矩阵生成NPOINTS,
NPOINTS是点数,NDV是变量数。该算法运行NTRIALS次,种子大小从1到
NTRIALS不等。P是根据PHIp准则找到的最佳设计。

PHIp标准是对样本的点在设计空间上的分布程度的度量:
s
PHIp = ( sum J d^(-p) )^(1/p)
i=1
其中p是正整数d是距离值;J是由d分隔的设计中的点对的数量;s是不同距离值的数量。任意点对之间的一般点间距离可以表示如下:

nv
d_ij=(sum|x_ik-x_jk|(t))(1/t)
k=1
其中nv是变量的数量。

PHIP=PHIPfun(X):返回X中给定设计的PHIP值;假设p=50并且t=1。
PHIP=PHIPfun(X,p):返回X中给定的设计的PHIP值,其中p为p,假设t=1。
PHIP=PHIPfun(X,p,t):返回给定值为p和t的X中给定设计的PHIP值。

参考文献:
Viana FAC, Venter G, and Balabanov V, “An algorithm for fast optimal Latinhypercube design of experiments,” International Journal for NumericalMethods in Engineering, Vol. 82 (2), pp. 135-156, 2010
(DOI:10.1002/nme.2750).

二、主程序

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%VarMin=[0 0 0];%各个参数下限
VarMax=[10  10 10];%各个参数上限
designspace=[VarMin;VarMax];%各个参数上下限
ndv = size(designspace, 2);%优化变量数量
npoints = 5;%抽样样本数
%% 一、在限定范围抽样
%% 1.LHS
X_LHS= createdoe(npoints,designspace,zeros(1,ndv),'lhc',0);
%% 2.TPLHS
X_TPLHS = SV(TPLHS(npoints, ndv), ...[zeros(1, ndv); ones(1, ndv)], ...designspace);%TPLHS抽样%% 二、在0-1范围抽样%% 1.LHS
iter=10;%迭代次數
X_LHS = LHfun(npoints, ndv,iter);%LHS抽样%% 2.ESEAOLHS
maxiter=50;
maxstalliter=20;
X_ESEAOLHS = ESEAOLHS(npoints, ndv, maxiter, maxstalliter);%ESEAOLHS抽样%% 3.GAOLHS
maxiter=50;
maxstalliter=20;
popsize=10*ndv;
X_GAOLHS = GAOLHS(npoints, ndv, maxiter, maxstalliter, popsize);%GAOLHS抽样

1、在限定范围抽样

(1)LHS

3.56160546861497	4.13444987304314	8.40777901990457
7.56802830455472	7.09267199095473	0.371967723696977
0.876211034143974	9.45225031978424	2.33170416235385
5.49104414252227	0.322064092441767	7.33971145788749
8.69849041404605	3.43078769064378	5.37088724880758

(2)TPLHS

5	0	0
0	7.50	2.50
7.50	10	5
2.50	2.50	7.50
10	5	10

2、在0-1范围抽样

(1)LHS

0	0	0.750000000000000
1	0.250000000000000	0.250000000000000
0.750000000000000	0.750000000000000	0.500000000000000
0.250000000000000	1	1
0.500000000000000	0.500000000000000	0

(2)GAOLHS

0.750000000000000	0.750000000000000	1
1	0.250000000000000	0.500000000000000
0	0.500000000000000	0.750000000000000
0.500000000000000	1	0.250000000000000
0.250000000000000	0	0

(3)ESEAOLHS

0.500000000000000	0.750000000000000	0
1	0.500000000000000	0.750000000000000
0	0.250000000000000	0.500000000000000
0.250000000000000	1	1
0.750000000000000	0	0.250000000000000

三、代码获取

1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,回复“100期”以及相应指令,即可获取对应下载方式。

这篇关于【MATLAB第100期】基于MATLAB的多种改进拉丁超立方LHS数据抽样方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796007

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu