我们时常会被问到为什么巴贝卡纳的全山不支持拉丁超立方体采样(“LHS”)。这是一种旨在提高Monte Carlo模拟模型给定迭代次数所获得的准确性的技术的花哨名称,但事实上,这种技术的好处非常小,并不是没有相应的成本。这将在第二部分中解释,但首先我们需要理解它是什么,以及它试图解决的问题是什么。
蒙特卡罗模拟模型具有多个随机变量输入,其分布假定已知,以及一个或多个输出,其分布将通过模拟进行估计。在进度风险分析(“SRA”)的情况下,主要输入通常是任务持续时间,相关输出包括项目完成日期。为了明确起见,让我们假设我们对完成日期的预期值感兴趣。
对于任何给定的迭代,完成日期将有一个特定的值,我们可以表示为:
X = m + e
其中m是(未知)分布的真实平均值,e是随机误差项。
如果我们进行多次迭代,结果表明x的平均值(也称为样本均值)是真均值m的无偏估计量。这仍然只是一个估计,但可以证明误差的标准偏差(也称为标准误差)等于e的标准偏差除以(n-1)的平方根,其中n是迭代次数。因此,迭代次数越多,我们的估计就越准确。
对于任何给定的迭代次数(n),LHS旨在通过“分层”样本来减少该标准误差。将每个输入分布划分为多个同等可能的范围(或“地层”),并进行采样,以确保每个地层的样本数量相同。主角通常使用只有一个输入分布的情况来说明好处,在SRA的情况下,这意味着一个单任务网络,所以让我们从这里开始。
通常假设持续时间分布是连续的,但是我们可以通过使用离散的持续时间分布,在不改变基本原理的情况下,节省大量令人讨厌的微积分。让我们假设单个任务的持续时间可以是从1到6的任意整数天,因此可以通过掷骰子来表示。让我们进一步假设我们将进行36次迭代,我们感兴趣的输出是得到值1的概率。
在这个例子中,我们知道真正的平均值是1/6,所以我们平均预期36次迭代中有6次是1次。如果我们进行常规随机抽样,1的数量可以是0(不太可能)到36(甚至更不可能)。结果表明,这个数字的标准偏差是(n.p.q)的平方根,其中n是迭代次数,p是任何一次投掷得到1的几率,q是(1-p)。在我们的例子中,这是sqrt(5),或大约2.236。
如果我们将分布划分为6个层,那么恰好有6个1,所以误差是0。当然,在这种情况下,做超过6次迭代是没有意义的,它们只是所有可能性的简单枚举,但记住,在连续的情况下,总会有一些错误,无论地层多么窄。为了更接近连续情况,假设我们将分布划分为三个层次。
那么1和2的组合数将始终为12,但这可能包括从0到12的任何数字。同样,我们可以应用sqrt(n.p.q)公式,这次得到sqrt(3)或大约1.732。
最后考虑将分布分成两个层,使得1、2和3的组合数总是18。应用相同的规则,我们得到的标准误差为2。
因此,通过逐步分层为2、3或6层,我们可以将标准误差分别从2.236降低到2、1.732或0。非常令人印象深刻,但正如我们将在第二部分中看到的,当我们有许多投入时,这种好处并没有转化为实际情况。