了解最新技术文章
DiscoverSim 利用“Y=f(X)”模型,其中 Y 表示关键过程输出响应,X 表示关键过程输入。这如图所示:
用于指定输入的 DiscoverSim 菜单按钮是:
输入分布是随机的并且包括随机变化。它可以是连续的或离散的。最常见的连续分布是带有参数均值和标准差的正态分布。DiscoverSim 包括 53 个连续分布和 10 个离散分布。
输入控件设置为恒定值,但它可以像恒温器的温度控制旋钮一样变化并用于优化。输入控件可以是连续的或离散的。
用于指定输出响应的 DiscoverSim 菜单按钮是:
DiscoverSim 模型至少需要一个输入和一个输出。输出单元格必须包含一个 Excel 公式,该公式是输入的函数,并引用输入的单元格地址或包括输入的中间计算。该公式可以是线性的或非线性的,并且包括 Excel 函数。该公式可以引用工作簿中的其他工作表,但不应引用其他工作簿。
DiscoverSim Excel 公式解释器用于在模拟或优化期间显着加快计算速度。
Y = f(X) 方程应基于理论、过程知识或设计实验或回归分析的预测公式。在六西格码设计 (DFSS) 中,这被称为“传递函数”。此预测方程应在用于 DiscoverSim 之前进行验证。正如著名统计学家 George Box 所说,“所有模型都是错误的,有些是有用的”,因此模型不一定要精确,但它应该是对现实的合理近似。DiscoverSim 分析的结果也应该通过进一步的实验或原型的使用来验证。
Y = f(X) 模型为我们提供了 X 和 Y 之间关系的起点。在验证了 Y = f(X) 关系之后,需要回答的一个重要问题是:“分布是什么?当我不能保持 X 不变但对 X 有一些不确定性时,Y 的情况看起来像?” 换句话说,“我如何量化我的风险?”
以销售预测为例。Y 是预测的月销售额,它是来自五个不同产品线销售经理的预测总和。如果每个经理只报告一个“最有可能”的估计,那么总预测销售额也将是一个“最有可能”的估计。这种方法的问题很明显。它没有考虑不确定性。那么应该怎么办呢?除了最可能的估计之外,每个销售经理还可以包括最佳和最坏情况的估计。或者,可以报告平均值和标准偏差的估计值。
那么挑战就变成了如何最好地考虑不确定性。可以简单地将最佳和最坏情况值(或 +/-3 标准偏差值)相加,从而报告总范围。然而,这种方法并不令人满意,因为它没有考虑到每条线同时具有最佳情况或最坏情况值的可能性非常低。这类似于掷 5 个骰子得到 5 个 1 或 5 个 6。
如果每个销售经理都假设一个正态分布,那么总销售额的分布也将是正态分布:
总平均值 = 平均值 1 + …+ 平均值 5
总 StdDev = SQRT((StdDev1)2 +…+ (StdDev5)2)。
但是,如果某些产品线的销售额存在关联,即产品A的销售额增加也意味着产品B的销售额增加,那么“事情就变得复杂了”。上面给出的 StdDev 公式不成立,因为它假设独立。如果销售经理需要使用不同的分布,或者如果总销售额超过一个简单的总和,则会出现进一步的复杂情况。这就是蒙特卡洛模拟的用武之地,它使用计算能力通过“蛮力”来解决处理不确定性的复杂问题。
蒙特卡罗方法是 1940 年代由约翰·冯·诺依曼、斯坦尼斯拉夫·乌拉姆和尼古拉斯·梅特波利斯在洛斯阿拉莫斯国家实验室从事核武器项目时创造的。它的命名是为了向著名的赌场蒙特卡洛赌场致敬,乌拉姆的叔叔经常在那里赌博(参考:http ://en.wikipedia.org/wiki/Monte_Carlo_method )
从每个输入分布中执行随机抽取,计算 Y,并将该过程重复 10,000 次。直方图和描述性统计显示了模拟结果。虽然此处未显示,但可以轻松地将要求(规范限制)添加到 Y 以获得不合格的概率。
请注意,即使输入分布 A2 和 A3 不是正态分布,总分布也是正态分布。这是由于中心极限定理。当然,在执行蒙特卡罗模拟时并非总是如此!
蒙特卡罗模拟的应用领域非常广泛,包括六西格码设计 (DFSS)、公差设计、项目管理和风险管理,在工程、金融、电信和石油和天然气勘探中普遍使用。
推荐以下书籍供进一步阅读:
Savage, Sam (2009),平均值的缺陷:为什么我们在不确定性面前低估风险,新泽西州霍博肯,威利。
Sleeper, Andrew (2006),六西格码统计设计:DFSS 倡议中诊断和解决问题的 59 种工具,纽约州麦格劳希尔。
不确定性有两个组成部分:一是实际过程的变化,二是由于缺乏知识而导致的测量误差或误差。后者的贡献可以合并到模型中,但为了简化我们的讨论和案例研究,我们将假设测量误差可以忽略不计。
选择正确的分布是构建有用模型的关键步骤。
分布的最佳选择是基于已知理论的分布,例如,使用 Weibull 分布进行可靠性建模。
一个常见的分布选择是正态分布,但是这个假设应该用通过最小样本量 30 的正态性检验的数据来验证;最好是100。
如果数据可用且分布不正常,请使用 DiscoverSim 的分布拟合工具找到最佳拟合分布。或者,Pearson Family Distribution 允许您简单地指定 Mean、StdDev、Skewness 和 Kurtosis。
在没有数据或理论的情况下,常用的分布有:均匀分布、三角分布和PERT。统一需要最小值和最大值,并假定在该范围内的概率相等。这通常用于公差设计。三角形和 PERT 需要最小值、最可能(众数)和最大值。PERT 类似于三角形,但它增加了一个“钟形”,在项目管理中很受欢迎。
下表总结了 DiscoverSim 中的所有分布(** 表示有/没有阈值)。
普通的
三角形
制服
Pearson 系列(指定均值、Std class="auto-style12"Dev、偏度、峰度)
记录正常**
指数**
威布尔**
自定义连续
PERT
贝塔
约翰逊 SB
测试版(4 参数)
约翰逊 SL
箱-考克斯**
约翰逊苏
毛刺**
拉普拉斯
柯西
最大极值
卡方**
征收
带刻度的卡方(3 参数)**
物流
误差函数 (ERF)
对数伽马**
F**
物流物流**
F 带刻度(4 个参数)**
麦克斯韦
疲劳寿命**
非中心卡方**
菲斯克**
非中央F**
折叠正常
非中央T
弗雷切**
帕累托
伽马**
力量
广义误差
瑞利
广义伽玛**
互惠的
广义物流
偏斜法线
广义帕累托
最小极值
半正常**
学生T
反伽玛**
Student's T with Location and Scale (3 参数)
逆高斯
冯米塞斯
伯努利(是/否)
二项式
几何的
超几何
对数
负二项式
泊松
步
均匀(离散)
自定义离散
DiscoverSim 允许您为任何输入分布指定截断值。例如,如果您的组件供应商从正态分布开始,然后拒绝不符合上下规格的零件,然后向您运送好零件,则截断正态分布将是合适的。
以下直方图说明了一个截断的正态分布(均值 = 0,标准差 = 1),最小值 = -2,最大值 = 2。
DiscoverSim 允许您指定任何输入之间的相关性。DiscoverSim 利用相关联结来实现所需的 Spearman Rank 相关值。
以下曲面图说明了相关 copula 如何导致双变量(2 个输入)分布的形状发生变化:
随机与确定性优化
蒙特卡罗模拟使您能够量化风险,而随机优化使您能够将风险降至最低。确定性优化是一种更常用的工具,但与上述蒙特卡罗模拟介绍中描述的单数估计方法具有相同的缺点;它没有考虑不确定性。随机优化不仅会找到产生最佳平均 Y 值的最佳 X 设置,还会寻找降低标准偏差的解决方案。
确定性优化将寻找最小值或最大值,而随机优化寻找对 X 的变化具有鲁棒性的最小值或最大值,从而减少 Y 的传输变化。这在六西格码设计中称为“稳健参数设计” (DFSS)。
局部优化与全局优化
局部优化方法擅长寻找局部极小值,利用目标函数的导数寻找最大改进的路径,收敛速度快。但是,它们需要平滑的响应,因此不适用于不连续的函数。DiscoverSim 使用顺序二次规划 (SQP) 进行局部优化。
全局优化找到全局最小值,并且是无导数的,因此适用于不连续函数。但是,由于设计空间较大,收敛速度比局部优化要慢得多。DiscoverSim 使用 DIRECT(分割矩形)和遗传算法 (GA) 进行全局优化。
DiscoverSim 中还提供了上述方法的混合,从 DIRECT 开始进行彻底的初始搜索,然后是 GA,然后使用 SQP 进行微调。
以下曲面图说明了具有局部最小值和全局最小值的函数。
DiscoverSim 中的优化组件
输出:输出将是模型方程、中间单元计算以及输入分布和输入控制的函数。
输入控制:规定了控制的允许范围,控制与输入分布不同,没有统计变化。把它想象成恒温器的温度控制旋钮。这也称为“决策变量”。输入控制可由输入分布参数、约束和/或输出函数引用。可以有一个模型只包含没有输入分布的控件。(在这种情况下,优化是确定性的,因此复制次数 n 应设置为 1。)输入控件可以是连续整数或离散整数。
约束:约束只能应用于输入控件,不能引用输入分布或输出响应。约束不能是模型方程的一部分(即,输出不能引用约束)。约束可以是简单的线性或复杂的非线性。每个约束都将包含左侧输入控件 ( LHS ) 的函数和右侧 ( RHS ) 的常量。约束公式在LHS 中指定。