【Dakota】03 手册笔记

6.14用户手册
【Dakota】03 手册笔记_第1张图片

输入文件

变量

变量类型

  • design : 用于优化和率定
  • uncertain : 用于不确定性量化和灵敏度分析
  • state : 固定不变
  • continuous : 连续
  • discrete : 离散

变量上下限

  • lower_bounds : 下限
  • upper_bounds :上限
  • descriptors :变量名

接口

分析驱动

函数名:Dakata输入变量到函数,并从函数输出响应

函数与Dakota连接

  • direct : 直接连
  • fork : 文件连
  • system : 文件连

响应

数据类型

与method块所定义方法有关

用于优化

  • num_objective_functions
  • num_nonlinear_inequality_constraints
  • num_nonlinear_equality_constraints

要求响应文件results.out必须按照objectives、inequalities、equalities顺序排列

用于率定

  • calibration_terms
  • num_nonlinear_inequality_constraints
  • num_nonlinear_equality_constraints

要求响应文件results.out必须按照calibration terms、inequalities、equalities顺序排列

适用于非线性最小二乘算法

用于灵敏度分析和不确定性量化

  • num_response_functions

约束和导数信息

接口返回给Dakota的额外信息

梯度向量

即一阶导数,有以下类型

  • no_gradients:不需要梯度
  • numerical_gradients:Dakota通过有限差分近似计算
  • analytic_gradients:由黑箱代码计算并提供
  • mixed_gradients:一部分由Dakota计算,另一部分由黑箱代码计算

是否需要梯度与method块所定义方法有关,基于梯度的优化、不确定性量化的可靠性分析和局部灵敏度分析需要用到梯度

海塞矩阵

即二阶导数,有以下类型

  • no_hessians:不需要二阶导数
  • numerical_hessians:Dakota通过有限差分近似计算
  • quasi_hessians:Hessians 是需要的,并且将通过一系列梯度评估的割线更新(BFGS 或 SR1)来近似。
  • analytic_hessians:由黑箱代码计算并提供
  • mixed hessians:一部分由Dakota计算,另一部分由黑箱代码计算

是否需要梯度与method块所定义方法有关,通常用于通过完全牛顿方法进行的基于梯度的优化,或用于使用二阶极限状态近似或二阶概率积分的可靠性分析

字段数据

Field Data
有些响应是时间序列,是相互关联的,因此可以使用字段数据将其与实测序列作比较。

  • field_objectives
  • field_calibration_terms
  • field_responses

目前仅有率定方法实现残差计算,其他方法仍将其作为标量集合看待。

梯度无约束优化

响应

  • numerical_gradients:由Dakota计算
  • analytic_gradients:由黑箱代码计算

方法

  • conmin_frcg :CONMIN优化软件包中的Fletcher-Reeves conjugate gradient algorithm算法
  • max_iterations :最大迭代次数
  • convergence_tolerance:收敛容差,三次迭代值差小于该值则表示收敛

不确定性量化

分类

  • aleatory uncertainties :偶然不确定性,采用概率方法
  • epistemic uncertainties :认知不确定性,数据一般是系数的,采用基于区间规范的非概率方法

变量

  • uniform_uncertain :均匀分布

响应

  • response_functions :用于灵敏度分析和不确定性量化

方法

  • sampling :采样
  • response_levels :响应阈值,用于计算概率级

结果

  • LHS*.out :由LHS软件包生成的随机采样,可以忽略
  • Statistics based on xxx samples: 基于采样的统计
  • Mean : 均值
  • Std Dev : 标准差
  • Skewness : 偏度,对称分布、左尾分布、右尾分布
  • kurtosis : 峰度
  • Correlation Matrix : 相关系数

黑箱代码

params.in

  • ASV :active set vector,响应
  • DVV : derivative values vector,导数值向量
  • AC :analysis components,分析组件,分析驱动的集合

ASV前面的数字代表获取hessian矩阵、梯度或值,具体见下表。
【Dakota】03 手册笔记_第2张图片

results.out

黑箱代码输出值,由Dakota读入。

黑色代表要求的函数值,后面可以带一个文字标签,但标签被Dakota忽略,除非接口部分有labeled关键字

蓝色代表梯度向量(即一阶导数),红色代表海塞矩阵(即二阶导数),禁止有标签
【Dakota】03 手册笔记_第3张图片

输入输出脚本

当黑箱代码不能读取params.inresults.out文件时,需要写脚本完成从params.in读取数据到黑箱代码输入文件,从黑箱代码输出文件提取数据写入results.out文件。

问题分类

需要根据所研究问题的特点,合理选择研究方法。
【Dakota】03 手册笔记_第4张图片

变量

变量类型

  • design : 用于优化和率定
  • uncertain : 用于不确定性量化和灵敏度分析
  • state : 固定不变
  • continuous : 连续
  • discrete : 离散

变量上下限

  • lower_bounds : 下限
  • upper_bounds :上限
  • descriptors :变量名

设计变量

连续设计变量

在上下限范围内的所有实数

离散设计变量

  • 某范围内的整数:discrete_design_range
  • 整数集合:discrete_design_set integer
  • 字符串集合:discrete_design_set string
  • 实数集合:discrete_design_set real

离散变量可分为“绝对的”和“相对的”,如果是“相对的”,那么范围外的变量对目标函数仍有意义,可以被松弛。“绝对的”离散变量仅在集合内有意义。受限 vs. 放松

梯度优化方法不能直接应用到含离散变量的问题。对于“相对的”离散变量可以用branch_and_bound放松离散限制,从而应用梯度方法。对于“绝对的”离散变量只能用非梯度方法比如colint_ea

不确定变量

一般而言,根据不确定性的属性不同,可以将不确定性分为随机不确定性(也称固有不确定性或客观不确定性) (Aleatory Uncertainty)和认知不确定性(Epistemic Uncertainty)。

前者表示物理现象中存在的固有随机性,它无法通过增加样本控制或减小这类随机性;后者则是由于人们主观认识不足、知识与数据的缺乏而导致无法精确地构建物理模型,或是不能对某些因素/参数的不确定度用精确的概率分布进行准确描述。

通常情况下,随机不确定性可用概率分布或随机场表征,而认知不确定性可用概率方法(如:贝叶斯理论)或非概率方法(如:区间理论、D-S证据理论、概率盒(Probability-Box,P-Box)理论、凸集模型、模糊理论等)表征。

当随机和认知这两类不确定性共存时,被称为混合不确定性。CFD模拟技术中,既存在模型参数或边界条件的固有不确定性,也存在由于真实流体与物理模型不同、模型参数估计不准确、模型数值离散精度不够等带来的认知不确定性。

随机不确定变量

aleatory uncertain variables,随机不确定性(也称固有不确定性或客观不确定性)。变量服从某种概率分布,正态分布、均匀分布等。对于偶然随机变量,Dakota允许用户提供变量相关矩阵,Dakota默认变量间是独立的。

连续随机不确定变量

  • 正态分布
  • 对数正态
  • 均匀分布
  • 对数均匀
  • 指数分布
  • Beta分布
  • Gamma分布
  • Gumbel分布
  • Frechet分布
  • Weibull分布
  • 直方图箱:一种基于经验的分布

离散随机不确定变量

  • 泊松分布
  • 二项式分布
  • 负二项式分布
  • 几何分布
  • 超几何分布
  • 直方图点分布

认知不确定变量

连续认知不确定性

  • 连续区间

离散认知不确定性

  • 离散区间
  • 离散集合

状态变量

不活跃的,不被优化、率定和不确定性量化算法迭代。
参数研究和实验设计方法会迭代包含状态变量。

接口

direct

不需要反复读取IO文件

system

在这种方法中,系统调用创建了一个新进程,该进程通过参数和响应文件与 Dakota 进行通信。

强烈建议用户尽可能使用 fork 模拟接口,尽管系统接口仍受支持以实现可移植性和向后兼容性。

fork

fork 模拟接口使用fork、exec 和wait 系列函数来管理模拟代码或模拟驱动程序。
【Dakota】03 手册笔记_第5张图片

  • verbatim : 防止参数和结果文件在过滤器和驱动后
  • {PARAMETERS}
  • {RESULTS}

fork可以保证异步,而system可能会出现问题。

通用脚本接口文件

使用脚本语言完成输入输出文件的转换即前处理和后处理。C-shell、Perl、Python等

前处理

Sandia实验室可用APREPRO,其余人可用DPREPROdakota/bin、PYPREPROdakota/scripts/pyprepro/或BPREPRO。
根据params.inros.template创建ros.in供黑箱代码使用。

硬编码

黑箱代码的输入和输出文件是被硬编码成可执行程序的,无法改变。

后处理

第三部分执行后处理并将响应结果写入文件以供 Dakota 读取。使用 UNIX“grep”实用程序,从原始模拟器输出中提取感兴趣的特定响应值并保存到临时文件 (results.tmp)。

案例

参见E:\software\Dakota\share\dakota\examples\official\drivers\bash

模拟接口组件

组件包括输入过滤器、一个或多个分析驱动、输出过滤器。
通常有两个参数接收Dakota输入文件和输出文件名。

单分析驱动不带有过滤器

blocking fork: driver params.in results.out

异步:

nonblocking fork: driver params.in.1 results.out.1

异步时,分析驱动必须取回命令行参数,因为文件名每次都在变化。UNIX C-shell 使用$argv[1]和$argv[2],Perl 脚本使用@ARGV[0]和@ARGV[1],C或C++使用argc(argument count)和argv(argument vector)。

单分析驱动带过滤器

blocking fork: ifilter params.in results.out;
      driver params.in results.out ofilter params.in results.out

异步:

blocking fork: ifilter params.in.1 results.out.1;
      driver params.in.1 results.out.1 ofilter params.in.1 results.out.1

多分析驱动不带有过滤器

blocking fork: driver1 params.in results.out.1;
    driver2 params.in results.out.2; driver3 params.in results.out.3

异步:

blocking fork: driver1 params.in.1 results.out.1.1;
    driver2 params.in.1 results.out.1.2; driver3 params.in.1 results.out.1.3

多分析驱动带过滤器

blocking fork:  ifilter params.in.1 results.out.1;
    driver1 params.in.1 results.out.1.1;
    driver2 params.in.1 results.out.1.2; 
    driver3 params.in.1 results.out.1.3;
    ofilter params.in.1 results.out.1

异步:

blocking fork:  ifilter params.in.1 results.out.1;
    driver1 params.in.1 results.out.1.1;
    driver2 params.in.1 results.out.1.2; 
    driver3 params.in.1 results.out.1.3;
    ofilter params.in.1 results.out.1

参见dakota/share/dakota/test/dakota_3pc/dakota_3pc.in

模拟文件管理

文件保存

在执行分析驱动程序之前,将立即删除现有的结果文件。这一行为解决了一个常见的用户问题,该问题是由于在运行目录中使用陈旧的结果文件启动 Dakota 而导致的。要覆盖此默认行为并保留任何现有结果文件,请指定allow_existing_results

使用file_save命令保存参数和结果文件。

文件标记

在文件名后添加评估数字以使得名字唯一。
Dakota默认不添加文件标记。
添加文件标记可防止文件被覆盖,可用于并行计算。
当仅有file_save时,当评估结束时,Dakota会自动添加文件标识。
当有嵌套模型时,可以采用分层标记hierarchical_tagging

临时文件

如果没有指定参数文件和结果文件名,则Dakota会使用临时文件名。

分析驱动的文件标记

当有多个分析驱动时,需要对结果文件名添加标记。

工作目录

  • work_directory :使每一次评估都在单独的文件夹内,文件夹由Dakota随机生成
  • work_directory named ‘my/special/directory’:黑箱代码会在定义的目录内运行,运行后会删除黑箱代码
  • directory_save:不会删除黑箱代码,与named同时出现
  • directory_tag:文件标记
  • copy_files:将临时目录中的文件复制到工作目录

批量评估

使用batch关键字激活批量模式。使用size关键字指定批量规模。

文件格式

将批量参数文件合并得到如下参数文件:
【Dakota】03 手册笔记_第6张图片
结果文件用#分隔每次评估结果。

工作目录

  • 不允许输入和输出过滤器
  • 仅允许单个分析驱动
  • 不允许异步评估

参数研究

概述

  • 初始值
  • 边界

矢量参数研究

由一点到另一点之间分成几段,两种用法:

final_point (vector of reals) and num_steps (integer)
step_vector (vector of reals) and num_steps (integer)

列表参数研究

给出点坐标的列表,不需要初始值:

list_of_points = 1.0  1.0  5 10.
                 1.25 1.1  7 12.
                 1.5  1.2  9 18.
                 1.75 1.3 11 30.
                 2.0  1.4 13 50.

中心参数研究

从初始点按维度方向正负变化:
【Dakota】03 手册笔记_第7张图片

多维度参数研究

从多个维度打正交网格,可以用来画函数响应的表面。
【Dakota】03 手册笔记_第8张图片DOE:design of experiment
DACE:design/analysis of computer experiment

实验设计能力

概述

用有限的采样点尽可能多地从参数空间中提取出趋势数据。

DoE/DACE 技术通常用于调查全局响应趋势、识别重要参数(例如,主效应),以及作为构建响应面近似值的数据生成方法。

Dakota以第三方库的形式支持一些采样和实验设计方法。

  • LHS:Latin hypercube sampling
  • DDACE:distributed design and analysis for computer experiments
  • FSUDace:Florida State University’s Design and Analysis of Computer Experiments
  • PSUADE:Problem Solving Environment for Uncertainty Analysis and Design Exploration

计算机试验设计

计算机试验不同于物理试验,物理实验往往同样的方法实施多次以查看输出的变异性。物理实验研究随机性,相同的输入可能会导致不同的输出。但计算机实验是确定的,相同的输入总会产生相同的输出。

计算机试验不用把相同的输入运行多次,而是要生成尽可能少的有代表性的输入以对多维空间进行采样。计算机试验比物理试验的参数要多得多,因此就有许多试验设计和采样方法关注如何产生充足且有代表性的采样点。

  • 灵敏度分析:查看输入参数对输出结果的影响程度,关注参数
  • 响应面近似:利用采样点构建响应曲面,进而采用多项式回归模型、神经网络等仿真黑箱代码。这对于运行耗时的模型来说十分重要。
  • 不确定性量化:输入参数服从某种分布,来研究输出结果的分布,关注结果

DDACE

distributed design and analysis for computer experiments
既包含传统试验设计方法,也包含随机采样方法。

经典试验设计方法是CCD(central composite design)和BB(Box-Behnken sampling)。
随机采样方法是正交阵列采样、蒙特卡罗采样、拉丁超立方采样和正交阵列-拉丁超立方采样。拉丁超立方体采样仅支持变量均匀分布。

不支持参数之间的关联自定义。

CCD(central composite design)

中心复合设计是包括中心点并使用一组轴点(又称为星形点)扩充的因子或部分因子设计,这些轴点可用于估计弯曲。使用中心复合设计可以:

  • 高效估计一阶和二阶项。
  • 通过向以前完成的因子设计添加中心点和轴点,为带有弯曲的响应变量建模。
    关键字:dace central_composite
    【Dakota】03 手册笔记_第9张图片

BB(Box-Behnken sampling)

Box-Behnken设计
具有位于试验空间边缘中点处的处理组合,并要求至少有三个连续因子。下图显示一个 3 因子 Box-Behnken 设计。图上的点表示进行的试验运行:
【Dakota】03 手册笔记_第10张图片

中心复合设计通常具有位于“立方体”以外的轴点。这些点可能不在相关区域内,也可能由于超出安全操作限制而无法执行。Box-Behnken 设计没有轴点,因此,您可以确信所有设计点都在安全操作区域内。Box-Behnken 设计还可以确保所有因子不会同时设置在高水平。
关键字:dace box_behnken

Orthogonal Array Designs

正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验。
关键字:dace oas

Grid Design

网格设计与多维参数设计很相似,区别是网格设计在每个采样点上添加了随机扰动,以捕捉响应的周期性。
关键字:dace grid

Monte Carlo Design

蒙特卡罗设计指对每个变量在上下限之间应用蒙特卡罗均匀分布随机采样。
关键字:dace random

LHS Design

DDACE的拉丁超立方采样生成均匀分布采样。

敏感性分析

概述

在优化之前进行灵敏度分析确定敏感参数很有意义。灵敏度分析还能获得响应的特征(光滑或非光滑、单峰或多峰),这些特征对优化、不确定性量化算法的选择很有帮助。

使用 DACE 评估灵敏度

为了可视化参数对结果的影响程度,最常用的是散点图。可以通过将 Dakota 表格结果导入外部统计分析程序(如 S-plus、Minitab 等)来获得散点图和方差分析。

通过VBD(Variance-based Decomposition)计算灵敏度指数。可以使用variance_based_decomposition命令为任何采样或 DACE 方法指定 VBD。采样数N至少为100,最好成百上千。由于计算量巨大,推荐使用更有效率的随机拓展方法计算灵敏度指数,见用户手册5.4节。

灵敏度指数 S i S_i Si越大,表示变量 i i i对输出的方差有更大的不确定性。
主效应指数(main effect indices)之和会 ≤ 1 \le1 1,如果主效应指数 < < 1 <<1 <<1,表明存在显著的二元、三元或更高阶对方差有显著贡献的相互作用。
并没有要求总效应指数(total effect indices)之和 = 1 =1 =1,大多数情况下,总效应指数 > 1 >1 >1

Dakota的一个案例如图所示:

Global sensitivity indices for each response function:
response_fn_1 Sobol indices:
						Main                  Total
	    	4.7508913283e-01  5.3242162037e-01 uuv_1
		    3.8112392892e-01  4.9912486515e-01 uuv_2

MOAT

如何分析变量均值方差散点图?

【Dakota】03 手册笔记_第11张图片

DOE用法指南

DOE用于物理试验,DACE用于计算机试验。

DOE/DACE与采样的区别在于参数的分布。DOE/DACE假设均匀分布,采样可以使用大量的概率分布。

DOE选择推荐表如下:
【Dakota】03 手册笔记_第12张图片

不确定性量化能力

概述

在高层次上,不确定性量化 (UQ) 或非确定性分析是
(1) 表征输入不确定性,
(2) 通过计算模型前向传播这些不确定性,
(3) 对结果响应进行统计或间隔评估的过程.

UQ 与敏感性分析相关,因为其共同目标是了解参数的变化如何影响工程设计问题的响应函数。然而,对于 UQ,参数向量的部分或全部分量被认为是不确定的,如特定概率分布(例如,正态、指数、极值)或其他不确定性规范所指定的那样。通过为输入分配特定的分布结构,可以推断输出(即响应统计)的分布结构。这从本质上更定性的分析(在敏感性分析的情况下)迁移到更严格的定量分析。

UQ 方法可以通过它们传播随机或认知输入不确定性特征的能力来区分,其中随机不确定性是自然界固有的不可约变量,而认知不确定性是由于缺乏知识而导致的可约化不确定性。对于随机的不确定性,概率方法通常用于计算基于输入概率分布规范的响应分布统计。相反,对于认知不确定性,概率分布的使用基于主观先验知识而不是客观数据,我们也可以探索基于区间规范的非概率方法。

Dakota 不确定性量化方法总结

Dakota 的随机 UQ 方法包括各种基于采样的方法(例如,蒙特卡罗Monte Carlo和拉丁超立方体采样Latin Hypercube Sampling)、局部和全局可靠性方法以及随机扩展(多项式混沌扩展polynomial chaos expansions、随机搭配stochastic collocation和功能张量训练functional tensor train)方法。
认知 UQ 方法包括局部和全局区间分析以及 Dempster-Shafer 证据理论。
Dakota 还通过区间值概率、二阶概率和 Dempster-Shafer 证据理论支持混合随机/认知 UQ。

  • 拉丁超立方体采样Latin Hypercube Sampling:包含Monte Carlo (random) sampling 和 Latin Hypercube sampling method,可以有以下概率分布:normal,lognormal, uniform, loguniform, triangular, exponential, beta, gamma, gumbel, frechet, weibull, poisson, binomial, negativebinomial, geometric, hypergeometric, and user-supplied histograms

  • 可靠性方法Reliability Methods:包括局部和全局可靠性方法。局部方法包括一阶和二阶版本的均值法(MVFOSM 和 MVSOSM)以及各种最可能点(MPP)搜索方法,包括高级均值法(AMV 和 AMV2)、迭代高级均值法方法(AMV+ 和 AMV2+),两点自适应非线性逼近方法(TANA-3),以及传统的一阶和二阶可靠性方法(FORM 和 SORM)。全局可靠性方法旨在通过创建基于高斯过程模型的全局近似来处理非光滑和多模态故障表面。他们准确地解析响应函数的特定轮廓,然后使用多模态自适应重要性采样估计概率。

  • 随机扩展方法Stochastic Expansion Methods:这些技术的理论发展反映了利用投影、正交性和弱收敛概念的确定性有限元分析

  • 重要性抽样Importance Sampling:重要性抽样是一种允许以比蒙特卡罗抽样更有效的方式估计统计量(例如故障概率)的方法。重要性采样的核心思想是生成优先放置在空间重要区域(例如在故障区域或用户定义的感兴趣区域内或附近)的样本,然后适当地对样本进行加权以获得对故障的无偏估计可能性

  • 自适应采样Adaptive Sampling:执行自适应采样的目标是构建一个替代模型,该模型可用作昂贵模拟的不准确预测器。目的是构建一个代理,使用来自昂贵模拟的尽可能少的数据来最小化整个感兴趣域的错误。自适应采样方法从初始 LHS 样本开始,然后自适应地选择优化特定标准的样本。例如,如果生成一组额外的可能样本点,一个标准是选择下一个样本点作为与现有点的最小距离(maximin)最大化的点。另一个标准是选择代理指示其预测中最大不确定性的样本点。

  • 区间分析Interval Analysis:区间分析通常用于对认知不确定性进行建模。在区间分析中,人们假设除了它的值位于区间内的某个地方之外,对认知不确定变量一无所知。在这种情况下,不假设该值在区间内出现的概率是一致的。相反,解释是区间内的任何值都是该变量的可能值或潜在实现。在区间分析中,不确定性量化问题是在给定输入区间界限的情况下确定输出的结果界限(定义输出区间)之一。同样,落在输出区间内的任何输出响应都是没有分配频率信息的可能输出。我们有能力使用全局或局部方法执行区间分析。在全局方法中,可以使用全局优化方法(基于高斯过程代理模型)或采样方法来评估边界。局部方法在基于导数的优化方法中使用梯度信息,使用 SQP(顺序二次规划)或 NIP(非线性内点)方法来获得边界。

  • Dempster-Shafer 证据理论Dempster-Shafer Theory of Evidence:证据理论的目标是对认知不确定性的影响进行建模。认知不确定性是指人们不知道足够多的知识来指定变量的概率分布的情况。有时认知不确定性被称为主观的、可还原的或缺乏知识不确定。相比之下,偶然不确定性是指人们确实有足够的信息来指定概率分布的情况。在 Dempster-Shafer 证据理论中,不确定的输入变量被建模为一组区间。用户为每个区间分配一个基本概率分配 (BPA),表明不确定输入落在该区间内的可能性有多大。间隔可能重叠、连续或有间隙。然后通过模拟传播区间及其关联的 BPA,以获得关于置信度和似真度的累积分布函数。置信度是与证据一致的概率估计的下限,合理性是与证据一致的概率估计的上限。 除了完整的证据理论结构之外,我们还为想要使用全局或局部优化方法执行纯区间分析(例如,给定输入区间的输出区间是多少)。区间分析通常用于对嵌套分析中的认知变量进行建模,其中概率论用于模拟变量。

  • 贝叶斯校准Bayesian Calibration:在贝叶斯校准中,不确定的输入参数最初以“先验”分布为特征。贝叶斯校准方法使用实验数据和似然函数(描述数据支持参数区域化的程度)来更新此先验知识。该过程产生与数据最一致的参数的后验分布,这样在来自后验的样本上运行模型会产生与观察数据一致的结果。

UQ的变量和响应

Dakota 响应数据集中的函数被 Dakota 方法解释为一般响应函数(没有将函数具体解释为优化和最小二乘法)。

抽样方法

  • traditional Monte Carlo (MC) :sample_type random
  • Latin hypercube sampling (LHS) :sample_type lhs
    一般来说,LHS 技术需要比传统蒙特卡洛更少的样本就能获得相同的统计精度,但它们仍然非常昂贵。请注意,在与要采样的函数相关的某些可分离性条件下,拉丁超立方采样提供了比随机采样更准确的平均值估计值。也就是说,给定相同数量的样本,均值的 LHS 估计将比通过随机采样获得的均值具有更小的方差。

抽样示例

输入文件:dakota/share/dakota/examples/users/textbook_uq_sampling.in

# Dakota Input File: textbook_uq_sampling.in
environment
  tabular_data
    tabular_data_file = 'textbook_uq_sampling.dat'
  top_method_pointer = 'UQ'

method
  id_method = 'UQ'
  sampling 
    sample_type lhs   # 抽样类型
    samples = 10   # 样本数量
    seed = 98765   # 抽样种子
    response_levels = 0.1 0.2 0.6   # 计算响应函数统计数据的级别
                      0.1 0.2 0.6
                      0.1 0.2 0.6
    distribution cumulative

variables
  uniform_uncertain = 2
    lower_bounds =  0.   0.
    upper_bounds =  1.   1.
    descriptors  = 'x1' 'x2'

interface
  id_interface = 'I1'
  analysis_drivers = 'text_book'
    fork
  asynchronous evaluation_concurrency = 5

responses
  response_functions = 3
  no_gradients
  no_hessians

输出文件:E:\Research\dakota\dakota_gui_workspace\case\textbook\textbook_uq_sampling.out

Statistics based on 10 samples:

Sample moment statistics for each response function: # 第一个输出块指定响应样本均值、样本标准差以及偏度和峰度。
                            Mean           Std Dev          Skewness          Kurtosis
 response_fn_1  4.1663215421e-01  4.7637909797e-01  1.5926562046e+00  2.6218412286e+00
 response_fn_2  8.8571611745e-02  3.3077098867e-01 -3.0339486527e-01 -1.2328583468e+00
 response_fn_3  9.7015843987e-02  3.6361915017e-01  1.0008435673e+00  6.3903982082e-02

95% confidence intervals for each response function: # 第二个输出块显示响应的均值和标准差的置信区间
                    LowerCI_Mean      UpperCI_Mean    LowerCI_StdDev    UpperCI_StdDev
 response_fn_1  7.5851076613e-02  7.5741323180e-01  3.2767031534e-01  8.6968253200e-01
 response_fn_2 -1.4804769930e-01  3.2519092279e-01  2.2751593138e-01  6.0385888500e-01
 response_fn_3 -1.6310162623e-01  3.5713331421e-01  2.5011005334e-01  6.6382682312e-01

Probability Density Function (PDF) histograms for each response function: # 第三个块定义样本的概率密度函数 (PDF) 直方图:直方图 bin 由 bin 的下限值和上限值以及该 bin 的相应密度定义。
PDF for response_fn_1: # 请注意,这些 bin 端点对应于用户在 Dakota 输入文件中定义的response_levels或probability_levels。
          Bin Lower          Bin Upper      Density Value
          ---------          ---------      -------------
   6.3224282293e-04   1.0000000000e-01   4.0254506227e+00
   1.0000000000e-01   2.0000000000e-01   0.0000000000e+00
   2.0000000000e-01   6.0000000000e-01   7.5000000000e-01
   6.0000000000e-01   1.5306897504e+00   3.2234157503e-01
PDF for response_fn_2:
          Bin Lower          Bin Upper      Density Value
          ---------          ---------      -------------
  -4.0176034180e-01   1.0000000000e-01   9.9649166813e-01
   1.0000000000e-01   2.0000000000e-01   1.0000000000e+00
   2.0000000000e-01   6.0000000000e-01   1.0000000000e+00
PDF for response_fn_3:
          Bin Lower          Bin Upper      Density Value
          ---------          ---------      -------------
  -3.1016031572e-01   1.0000000000e-01   1.4628426422e+00
   1.0000000000e-01   2.0000000000e-01   0.0000000000e+00
   2.0000000000e-01   6.0000000000e-01   7.5000000000e-01
   6.0000000000e-01   8.0768278089e-01   4.8150356794e-01

Level mappings for each response function: # 最后,输出的最后一部分定义了累积分布函数 (CDF) 对。
Cumulative Distribution Function (CDF) for response_fn_1:
     Response Level  Probability Level  Reliability Index  General Rel Index
     --------------  -----------------  -----------------  -----------------
   1.0000000000e-01   4.0000000000e-01
   2.0000000000e-01   4.0000000000e-01
   6.0000000000e-01   7.0000000000e-01
Cumulative Distribution Function (CDF) for response_fn_2:
     Response Level  Probability Level  Reliability Index  General Rel Index
     --------------  -----------------  -----------------  -----------------
   1.0000000000e-01   5.0000000000e-01
   2.0000000000e-01   6.0000000000e-01
   6.0000000000e-01   1.0000000000e+00
Cumulative Distribution Function (CDF) for response_fn_3:
     Response Level  Probability Level  Reliability Index  General Rel Index
     --------------  -----------------  -----------------  -----------------
   1.0000000000e-01   6.0000000000e-01
   2.0000000000e-01   6.0000000000e-01
   6.0000000000e-01   9.0000000000e-01

# 输出中返回四种类型的相关性:简单和部分“原始”相关性,以及简单和部分“等级”相关性
# 原始相关是指对实际输入和输出数据执行的相关。秩相关是指对数据的秩执行的相关。
# 排名是通过将实际数据替换为排名值来获得的,排名值是通过对数据进行升序排列而获得的。
# 当某些输入和输出的幅度差异很大时,等级相关性很有用:例如,如果排序最小的输入样本与排序最小的输出相关,则更容易进行比较。
Simple Correlation Matrix among all inputs and outputs: # 简单相关系数是皮尔逊相关系数
                       x1           x2 response_fn_1 response_fn_2 response_fn_3 
          x1  1.00000e+00 
          x2  1.11135e-01  1.00000e+00 
response_fn_1 -7.27631e-01 -5.96736e-01  1.00000e+00 
response_fn_2  8.59620e-01 -3.35742e-01 -2.99322e-01  1.00000e+00 
response_fn_3 -4.07188e-01  8.40792e-01 -1.18486e-01 -7.34022e-01  1.00000e+00 

Partial Correlation Matrix between input and output: # 两个变量之间的偏相关系数衡量它们的相关性,同时调整其他变量的影响。例如,假设有两个输入和一个输出的问题;并且两个输入高度相关。那么在考虑到第一个输入的影响后,第二个输入和输出的相关性可能会非常低。
             response_fn_1 response_fn_2 response_fn_3 
          x1 -8.29267e-01  9.58139e-01 -9.30530e-01 
          x2 -7.56720e-01 -8.49354e-01  9.76157e-01 

Simple Rank Correlation Matrix among all inputs and outputs: # 秩相关是使用 Spearman 的秩相关获得的。 Spearman 秩与 Pearson 相关系数相同,只是它是在排序数据上计算的。
                       x1           x2 response_fn_1 response_fn_2 response_fn_3 
          x1  1.00000e+00 
          x2  9.09091e-02  1.00000e+00 
response_fn_1 -7.57576e-01 -6.12121e-01  1.00000e+00 
response_fn_2  8.78788e-01 -2.60606e-01 -4.54545e-01  1.00000e+00 
response_fn_3 -4.18182e-01  8.06061e-01 -1.63636e-01 -6.12121e-01  1.00000e+00 

Partial Rank Correlation Matrix between input and output:
             response_fn_1 response_fn_2 response_fn_3 
          x1 -8.91349e-01  9.38667e-01 -8.33856e-01 
          x2 -8.35713e-01 -7.16477e-01  9.33092e-01 

请注意,在大多数情况下,简单相关和偏相关应该是相似的(就相关系数的值而言)。这是因为我们在 LHS 例程中使用了默认的“受限配对”方法,该方法迫使不相关的输入之间的相关性接近零。

如果在输入文件中使用active,LHS 包将采样所有活动变量,而不是仅对不确定变量进行迭代。在active all view中,连续设计和连续状态变量被视为在其上下限内具有均匀的概率分布,离散设计和状态变量在其集合或范围内均匀采样,任何不确定变量在其指定的概率分布内采样。

增量抽样

当从一个初始样本集获得更大样本集时,可以采用增量抽样。利用dakota.rst实现。分为

  • 增量随机抽样
  • 增量拉丁超立方抽样

主成分分析 Principal Component Analysis

主成分分析 (PCA) 是一种数据简化方法,允许用一组负责该数据传播的主成分来表达一组现场数据。
Dakota 可以使用关键字principal_components 计算N 个样本* L 个响应(长度为L 的场响应)的响应矩阵的主成分。
此外,如果用户指定percent_variance_explained = 0.99,则将保留至少占响应方差99% 的分量数。此百分比的默认值为 0.95
主要成分被写入文件princ_comp.txt

基于威尔克斯的样本量

大多数采样方法都需要用户提前指定样本数量。但是,如果指定随机random抽样,则可以使用 Wilks 开发的方法来确定样本数量,以确保在感兴趣的百分位数中确保特定的置信水平。

可靠性方法Reliability Methods

与基于抽样的方法相比,这些方法在计算响应分布尾部(低概率事件)的统计数据时通常更有效,因为解决低概率所需的样本数量可能令人望而却步。

可靠性方法都回答了一个基本问题:“给定一组不确定的输入变量 X 和标量响应函数 g,响应函数低于或高于某个水平 ̄z 的概率是多少?”前者可以写成 P [ g ( X ) ≤ z ‾ ] = F g ( z ‾ ) P[g(X)\le \overline z]=F_g(\overline z) P[g(X)z]=Fg(z),其中 F g ( z ‾ ) F_g(\overline z) Fg(z)是不确定响应 g ( X ) g(X) g(X)的累积分布函数(CDF)。后者可以写成KaTeX parse error: Undefined control sequence: \g at position 8: P[g(X) \̲g̲ ̲\overline z],由互补累积分布函数CCDF定义。

此概率计算涉及在不规则形状的感兴趣域 D 上的多维积分,其中 KaTeX parse error: Undefined control sequence: \l at position 6: g(X) \̲l̲ ̲\overline z 显示在图 中,对于两个变量的情况。
【Dakota】03 手册笔记_第13张图片

局部可靠性方法

包括平均值方法和最可能点 (MPP) 搜索方法族
【Dakota】03 手册笔记_第14张图片

全局可靠性方法

全局可靠性方法旨在通过创建基于高斯过程模型的全局近似来处理非光滑和多模态故障表面。他们准确地解析响应函数的特定轮廓,然后使用多模态自适应重要性采样来估计概率。
Dakota 的全局可靠性方法称为高效全局可靠性分析 Efficient Global Reliability Analysis(EGRA)。

使用可靠性分析进行不确定性量化的例子

总之,用户在执行可靠性分析时可以选择执行正向 (RIA) 或反向 (PMA) 映射。
所有可靠性方法都输出规定响应水平 (RIA) 或规定概率或可靠性水平 (PMA) 的 CDF/CCDF 响应-概率-可靠性水平的近似值。此外,均值方法输出响应均值和标准差的估计值,以及对一组不确定变量之间的方差进行归因的重要因素(提供非零响应方差估计)

平均值可靠性

平均值方法是最简单的可靠性方法,也叫做均值一次二阶矩法(FOSM)。由local_reliability关键字定义。该方法根据有关输入均值和方差的信息以及输入均值处的梯度信息计算响应函数的均值和方差。平均值方法在计算上非常便宜(教科书函数只需要五次运行),但可能非常不准确,特别是对于非线性问题或具有明显非正态的不确定输入的问题。

具有对数正态比的FORM可靠性

FORM在计算这个问题的CDF值时确实有一些误差,但误差很小(e-11的量级),比使用Mean Value法得到的误差小很多。

随机扩展方法Stochastic Expansion Methods

多项式混沌扩展基于多维正交多项式逼近,随机搭配方法基于多维插值多项式逼近,两者均根据标准化随机变量形成。第一个随机展开方法是多项式混沌展开(PCE)。随机搭配 (SC) 是 UQ 的另一种随机扩展技术,与 PCE 密切相关。

使用随机扩展进行不确定性量化的例子

多项式混沌展开

重要性采样方法Important Sampling Methods

可以基于可靠性方法和高斯过程适应方法。

适应采样方法Adaptive Sampling Methods

构建代理模型步骤:

  1. 在初始采样点评估真实模型
  2. 适应代理模型
  3. 基于从代理模型获得的信息创建候选集并打分
  4. 选择候选点评估真实模型并重复2-4步

认知非确定性方法

认知不确定性被称为主观的、可还原的或缺乏知识的不确定性。认知不确定性的例子包括固定但未知的物理参数的实验数据很少或没有,对复杂物理现象的不完全理解,关于使用的正确模型形式的不确定性等。

贝叶斯校准方法 Bayesian Calibration Methods

【Dakota】03 手册笔记_第15张图片

优化能力Optimization Capabilities

优化算法用于最小化(或最大化)目标函数,通常由用户模拟代码计算,受设计变量和响应的约束。达科他州的可用方法包括用于科学和工程设计应用程序的经过充分测试和证明的基于梯度、无导数的本地和全局方法。 Dakota 还提供更高级的算法,例如,管理多目标优化或执行基于代理的最小化。本章总结了优化问题的表述、Dakota 中可用的标准算法(主要通过包含的第三方库,参见 6.5)、一些高级功能,并提供使用指南。

非线性最小二乘(率定)能力Nonlinear Least Squares Capabilities

任何 Dakota 优化算法都可以应用于参数估计、系统识别和测试/分析协调中出现的校准问题。然而,非线性最小二乘法是利用平方和目标函数[58]的特殊结构的优化算法。为了利用问题结构,响应数据需要比典型优化问题所需的粒度更多。也就是说,不是使用平方和目标函数及其梯度,最小二乘迭代器需要平方和公式中使用的每一项及其梯度。这意味着 Dakota 响应数据集中的函数由单个最小二乘项以及任何非线性不等式和等式约束组成。这些单个项通常被称为残差,当它们表示观察到的量与其参数被估计的模型计算的值之间的差异时。非线性最小二乘算法所需的增强粒度允许简化近似 Hessian 矩阵的计算。例如,在基于 Gauss-Newton 的方法中,在残差趋于零的假设下,通过忽略残差乘以残差的 Hessian(二阶偏导数矩阵)的项来近似真实 Hessian 矩阵。因此,残差函数值和梯度信息(一阶信息)足以定义平方和目标函数的值、梯度和近似Hessian(二阶信息)。有关此近似的其他详细信息,请参见第 7.2 节。在实践中,当 Hessian 近似较好时,例如,当解的残差趋于零时,最小二乘求解器往往比通用优化算法更有效。具体来说,即使仅使用一阶信息,它们也可以表现出完整牛顿方法的二次收敛速度。当解的残差很大时,基于高斯牛顿的最小二乘法求解器可能会遇到困难。 Dakotaha 定制了三个求解器,以利用此问题公式中的残差平方和结构。当解中的残差很大时,最小二乘求解器可能会遇到困难,尽管经验表明 Dakota 的 NL2SOL 方法可以处理一些高度非线性且解中残差非零的问题

你可能感兴趣的:(#,Dakota,Dakota,优化,率定,不确定性量化)