【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

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据