问题标签 [anylogic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
simulation - AnyLogic - 在仿真时动态创建对象
是否可以在运行时动态创建对象或修改它们?例如,单击按钮、创建另一个按钮或更改道路的行数?当我为按钮操作编写此代码时,在运行时
我收到以下错误:
root: road123: 标记元素已经启动,不能修改。请使用不带参数的构造函数,执行设置,最后调用initialize() .function
anylogic - Anylogic - 如何使用excel文件的相对路径
我正在尝试使用连接到我的 AnyLogic 仿真模型的 excel 文件的真实路径。excel 文件与模型位于同一文件夹中。有人可以给我一个线索吗?先感谢您!
java - AnyLogic 汇编器作为网关
早上好,我是 AnyLogic 平台的新手,我已经开始研究它,因为我想用它来绘制公司的业务流程。我计划使用该工具的流程模型库对不同部门进行建模,目的是研究现在如何实现部门之间的信息流。
我的图表将由“源”元素和不同的“汇编器”元素组成,我希望最后一个(汇编器)作为网关。我附上一个简单的图表来更好地说明情况(示例)。
假设 ''sourceA'' 和 ''sourceB'' (放置在不同的部门)生成两个不同的文档,使用两个自定义代理(例如,从 ''sourceA'' 生成的代理有一个 ''orderID'' 参数和从''sourceB'' 有一个 ''qualityCheckID'' 参数),在到达汇编器组件(放置在不同的部门)之前在各个队列上传送。由于部门不同步,队列很可能在模拟过程中未对齐(queue[10] = agent.orderID 设置为 10,queue[10] = agent.qualityIDCheck 设置为 9)。我希望汇编器作为网关工作,因此它等待“orderID”等于“”的代理
阅读文档,我看到代理在空闲时到达汇编器端口,否则在队列中等待。由于可能发生异步,在汇编程序端口中存在不具有等于 qualityCheckID 的 orderID 的代理,在这种情况下,我不希望生成汇编程序的输出。可能会发生必要的代理在队列中而不是在端口中,因此“组装者”必须在队列中搜索以查找相应的代理是否存在以及是否将其从队列中删除(在队列中替换错误的代理)端口将最后一个放入队列并产生输出)
有人可以帮助我了解如何实现此场景。
java - 迭代代理的参数
我正在通过代码创建基于另一个代理的代理。原始代理处于正在处理的延迟块中,我想创建副本,其中只有 id 会更改并执行 Enter 块中的方法。
为了从原始代理复制信息,我似乎找不到比指定每个参数更好的方法,如下所示:
等等。
有没有办法迭代代理参数以改进此操作?
提前谢谢你,路易斯
java - AnyLogic 中的自定义流程库块
可以在等待块中更改内部队列行为吗?
相反,该元素将代理保存在标准队列中,它保存在 HashMap 中,以便事件处理程序中的代码可以以较低的代码复杂度执行搜索?
我找到的解决方案是使用迭代器滑动队列中的所有元素,但使用 HashMap 可以更快地找到特定代理是否存在。我不会将全局 HashMap 变量放在主代理的onStartup事件处理程序中。
java - 在 AnyLogic 中创建自定义流程图块
我正在寻找一些教程或方法来解释如何在 AnyLogic 7.3.5 中创建自定义流程建模库 (PML) 块。
我看到了 2015 年 11 月 4 日 5 日在费城举行的会议中使用的幻灯片,如幻灯片 7所示。我知道自定义块是一个新的 AgentType并且在其中我可以使用标准 PML 块创建一个“行为”,我正在搜索一个文档来解释如何创建一个简单的自定义块以在我的' '主要''代理。
谢谢安德里亚
anylogic - AnyLogic - 由条件触发的转换
我是 AnyLogic 的新手……但它让我发疯了!!!
这是超级基本的……在 AB 模型中,我希望一定比例的代理从一个状态转到另一个状态……但它发生了一些我无法理解的事情:S
我有 1000 名特工……我预计 950 名将进入 V3 状态……然而
只有 889 个代理更改状态 :(
似乎条件被评估了两次...确实 0.95*0.95=0.90..这正是代理更改状态的百分比 :(
谁能帮我理解这一点?:( 我必须修改整个模型......我什么时候必须设置“条件”以及何时设置“警卫”?
感谢大家!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
来自@sdaza 模型
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
AnyLogic 支持团队回答
_如果条件最初返回 true,则对条件进行两次评估。当代理进入具有输出条件转换的状态时执行初始检查。如果转换的某些条件返回 true,引擎会尝试触发它。这里再次检查条件。如果条件返回false,它将被取消,代理保持在状态。换句话说,条件应该返回 true 两次才能被执行。
在您的情况下,只有两次返回“true”的代理执行了转换,并且概率与结果匹配:0.95 * 0.95 = 0.9。这是实际概率。
我希望它会有所帮助_
虽然我不明白为什么会这样...
anylogic - 条件如何运作?
我正在为意大利的百日咳建立一个流行病学模型,其中的疫苗接种计划是在生命的第 III、V 和 IX 个月……然后在 4 到 6 岁时接种加强剂,在 14 岁时接种另一剂。代理人再现了意大利人口的分布,我用上个世纪的数据来分割不同州的初始人口。虽然我从另一篇论文中获取了有关日常联系的数据,并且根据这些数据,每个代理都与其他代理连接。
我想重现 2006 年到 2014 年意大利百日咳的流行病学……所以我对感染人数感兴趣
新特工(在模拟期间出生)进入状态 S...在他们生命的第三个月(从 60 到 89 天)特工可以接种疫苗并进入状态(转到 V1)...我每天有概率更改状态(ProbVaccD)...这是我在转换中编写的代码:
condition: age() >= 60./365 && age()<90./365
guard: randomTrue(main.ProbVaccD)
模型的时间是“天”,“age()”是一个函数,定义为return time(YEAR) - birthDate;
“birthDate”是一个变量,存储代理出生时模型的时间(YEAR)。
我想要的是每天评估的条件,因此我添加了一个带有“重复时间 1 天”的“循环事件”并且action: onChange();
......这是正确的吗?
我担心的一点是,一些代理(处于 Ip、Is、R1、R2 和 R3 状态的代理)每天都会向与他们连接的所有代理发送消息......
假设一个代理收到 8 条消息,那么条件被评估 8 次(每条消息一个)+ 1(对于“onChange();)函数?
提前致谢!!!