如何在 Anylogic 中同时运行代理?当我在 Anylogic 中定义一些代理然后运行程序时,所有代理都没有同时运行。这意味着所有代理都保持在第一个状态,然后其中一个进入某个状态,其他人等到轮到他们。我的问题有解决方案吗?坦克。
1 回答
0
即使您对每个代理进行并行处理,您所要求的也永远不会发生。
例如,假设您对每个代理都有一个初始状态 X,其超时转换将在 1 秒后发生到状态 Y。
会发生什么?好吧,您会看到每个代理将一个接一个地从 X 移动到 Y... 是的,但是如果您检查每个代理从 X 移动到 Y 的时间,那将是完全相同的。使用 time() 函数发现所有代理将在完全相同的毫秒内移动到状态“Y”。
总之,您的问题可能不是问题,您只是对正在发生的事情感到困惑。
作为一个类比,尝试创建一个与此等效的代码,其中“aux”的所有元素同时等于 2:
for(int i=0; i<100; i++){
aux[i]=2;
}
如何创建一个代码,使“aux”的每个元素同时等于“2”?好吧,这是不可能的...因为计算机按顺序运行所有内容,即使您并行处理所有内容,它们仍然不会同时都等于“2”...
但是在模拟的虚拟时间是的,所有代理将在完全相同的时间运行。在你的手表的实时,不,它们不会同时运行......
于 2018-01-30T15:57:18.847 回答