如何修复 anylogic 中的 'Error in the model during iteration'
How to fix the 'Error in the model during iteration' in anylogic
我建立了一个模型,在这个模型中,卡车车队向不同的客户运送多个订单。当我执行一个模拟实验时,这个模型工作正常。但是,当我尝试 运行 参数变化时,出现以下错误:'Error in the model during iteration x'。可以在 2.
中找到该特定错误的快照
关于这个话题的问题早先在这里问过:
NullPointerException during Parameter Variation Experiment with agent statistics
我已经尝试了 post 中给出的提示,但其中 none 似乎可以解决问题。
- 我已经用状态图中的消息替换了所有条件转换(见图)。
- 我的数据集存储在数据库中,所以这不是问题。
我无法理解为什么该模型适用于某些种子值而某些则不能。我知道仅从快照中找出建模缺陷很困难,但有关如何发现错误的任何提示都可能有所帮助。
PS: 我是学习版所以没有调试器
编辑:
该错误发生在从状态“movingToClient1”指向状态的转换中写入的特定代码行。似乎导致错误的行是:
Order order = orderStore.myOrdercollection.get(0);
迭代似乎有效。但是,我需要它等于一(专门衡量最后一条路线的某些 KPI)。希望这有助于找到解决方案。
最有可能导致问题的是您的名为 collectionOfOrders 的数组列表被误用。
所以在您的某个状态的“进入时”的某个时刻,您会:
collectionOfOrders.get(something)
当 collectionOfOrders 实际上为空时。
有时会发生在您的模型中同时发生多件事情,当您询问是否 collectionOfOrders==1
时,您的另一个卡车代理也这样做并且他们都 return 正确,这意味着其中之一会遇到问题。
这只发生在某些种子上,因为它发生的概率非常低。
根据目前提供的信息,这是我的猜测
由于 Felipe 和 Benjamin 给出的见解,我在我的模型中发现了问题。我的模型从一个进口订单开始,其特定到达率为源块中的一个。速率 1 相当于指数分布的到达间隔时间,平均值 = 1/速率定义 (https://anylogic.help/library-reference-guides/process-modeling-library/source.html)。这意味着对于某些种子值,可能会同时生成订单。因此,将设置从 'rate' 更改为 'interarrival time' 解决了问题。
我建立了一个模型,在这个模型中,卡车车队向不同的客户运送多个订单。当我执行一个模拟实验时,这个模型工作正常。但是,当我尝试 运行 参数变化时,出现以下错误:'Error in the model during iteration x'。可以在 2.
中找到该特定错误的快照关于这个话题的问题早先在这里问过:
NullPointerException during Parameter Variation Experiment with agent statistics
我已经尝试了 post 中给出的提示,但其中 none 似乎可以解决问题。
- 我已经用状态图中的消息替换了所有条件转换(见图)。
- 我的数据集存储在数据库中,所以这不是问题。
我无法理解为什么该模型适用于某些种子值而某些则不能。我知道仅从快照中找出建模缺陷很困难,但有关如何发现错误的任何提示都可能有所帮助。
PS: 我是学习版所以没有调试器
编辑: 该错误发生在从状态“movingToClient1”指向状态的转换中写入的特定代码行。似乎导致错误的行是:
Order order = orderStore.myOrdercollection.get(0);
迭代似乎有效。但是,我需要它等于一(专门衡量最后一条路线的某些 KPI)。希望这有助于找到解决方案。
最有可能导致问题的是您的名为 collectionOfOrders 的数组列表被误用。
所以在您的某个状态的“进入时”的某个时刻,您会:
collectionOfOrders.get(something)
当 collectionOfOrders 实际上为空时。
有时会发生在您的模型中同时发生多件事情,当您询问是否 collectionOfOrders==1
时,您的另一个卡车代理也这样做并且他们都 return 正确,这意味着其中之一会遇到问题。
这只发生在某些种子上,因为它发生的概率非常低。
根据目前提供的信息,这是我的猜测
由于 Felipe 和 Benjamin 给出的见解,我在我的模型中发现了问题。我的模型从一个进口订单开始,其特定到达率为源块中的一个。速率 1 相当于指数分布的到达间隔时间,平均值 = 1/速率定义 (https://anylogic.help/library-reference-guides/process-modeling-library/source.html)。这意味着对于某些种子值,可能会同时生成订单。因此,将设置从 'rate' 更改为 'interarrival time' 解决了问题。