1

我在 Arena 中创建了一个模拟模型,我被要求将其初始化偏差与其他模型进行比较,有人可以帮我从输出中检索这个参数吗?或者至少指导我查看模拟图表,以便我能够自行决定图表中的初始化偏差值?

谢谢。

4

1 回答 1

3

仿真模型的初始配置对其结果的影响是初始化偏差。理想情况下,您的结果中不应存在任何初始化偏差

例如,假设您正在为一家制造洗衣机的工厂建模。当您的模拟开始时,最简单的初始状态是工厂没有在制品- 也就是说,工厂在流程的任何部分都没有洗衣机零件。在模拟运行时,您引入零件,这些零件通过模拟进行,直到完成的洗衣机发货。

假设您计算模拟运送的洗衣机数量。然后,您可以估计每小时运送的洗衣机的平均数量如下:

mean hourly throughput = (number of washing machines shipped) / (simulation time in hours)

但是,我们会看到初始化偏差,因为模拟完成第一台洗衣机需要时间;我们可能会在一段时间内不运送任何洗衣机。

现在,假设这家工厂平均每小时实际运送 200 台洗衣机(为简单起见,假设吞吐量没有变化),制造一台完整的洗衣机需要两个小时。如果我们在每小时结束时测量平均每小时吞吐量,我们将看到如下内容:

Time Units Shipped Throughput
  0         0          0.00
  1         0          0.00
  2         0          0.00
  3       200         66.67
  4       400        100.00
  5       600        120.00
  6       800        133.33

我们永远不会真正看到每小时 200 台洗衣机的产量,因为前两个小时我们什么也没发货,所以(n - 2) * 200 / n对于任何 n >= 2 的值,我们总是会小于 200 台。

然而,这种初始状态是不现实的,因为当工厂每天停产时,里面都会装满洗衣机零件。次日开机,即刻开始生产洗衣机。如果我们开始模拟完全填充了洗衣机部件(这不是简单实现的),那么我们会看到更像这样的东西:

Time Units Shipped Throughput
  0         0          0.00
  1       200        200.00
  2       400        200.00
  3       600        200.00
  4       800        200.00
  5      1000        200.00
  6      1200        200.00

(再次假设生产率没有变化)。

在第二种情况下,模拟被初始化为与其稳态一致的状态,因此几乎没有初始化偏差。您可以通过比较两组输出轻松计算此统计数据的偏差。

应该清楚的是,初始化偏差是模拟的初始起始状态和收集统计数据的时间长度的函数。

如果您的仿真模型是非终止的,并且达到了稳定状态,那么消除初始化偏差的最简单方法是在一些预热期后重置所有统计数据。(在上面的例子中,2 小时的热身就足够了,但更一般地说,它会在系统达到稳定状态后进行。)我从未使用过Arena,但如果它没有机制对于在热身期后重置统计数据,我会感到惊讶。

与尝试将模拟初始化为更接近其稳态操作的东西相比,使用统计重置的预热更容易实现,也更可靠。

应该如何进行重置?在上面的例子中,洗衣机的出货数量应设置为 0,平均吞吐量计算如下:

平均每小时吞吐量 =(洗衣机出货量)/(自上次重置后的模拟时间(以小时为单位))

现在,我们应该看到如下输出(在预热期间收集的统计数据被丢弃):

Time Units Shipped Throughput
  3       200        200.00
  4       400        200.00
  5       600        200.00
  6       800        200.00

在这种情况下,现在没有初始化偏差

于 2014-02-25T16:10:52.500 回答