1

有人尝试过使用 Anylogic 进行优化实验吗?我正在尝试通过模拟优化一组参数。Anylogic 表示,在每次模拟运行结束时都会调用目标函数。问题是它似乎随时调用它......我很困惑。我怎样才能确保它在最后被调用?我需要在优化器中调整某个功能吗?

谢谢!L.

4

1 回答 1

0

目标函数确实在每次模拟运行结束时被调用,它不会在任何时候被调用。这通常是由于您的模型中存在概念错误,一些选项可能是:

  1. 您的模拟实验中的配置不会直接转移到您的优化实验中。这使您认为模拟完全相同,但事实并非如此。例如,您在您期望的不同日期运行模拟...仔细检查所有配置
  2. 优化在没有随机种子的情况下运行。在某些情况下,这可能会导致混淆。如果您使用的是固定种子,请确保这是您想要的。
  3. 目标函数的一个或多个变量在模拟结束时重置,始终为您提供相同的目标函数值。在这种情况下,您必须仔细检查您的模型。
  4. 使用静态变量:如果您不确定它们的作用,请不要使用静态变量...静态变量与类的所有实例共享,因此当您看到该变量与其他模拟共享时并不奇怪。

大多数时候,优化实验不会神奇地起作用(有时它会起作用),您必须仔细构建它才能按预期工作。

摘要:目标函数总是在最后被调用,如果你觉得不是,那么错误就在你身边。

于 2018-11-28T10:10:26.363 回答