当前位置: 首页 > 知识库问答 >
问题:

AnyLogic如何创建新代理并分配属性?

贡光明
2023-03-14

Any逻辑:这应该很简单,但我只是在帮助文件中找不到它...在创建一个新的代理实例时,我们知道有四个参数以及它们是什么,但不知道它们是以什么顺序定义的。假设参数是“type_of_car”(字符串)、“number_of_pax”(整数)、“自动”(布尔值)、“fuel_capacity”(双精度)。现在调用时:new myagenttype(“ford”,5, false,55)代理被创建为具有55 pax、手动和5升燃料容量的ford——这都是错误的。(似乎代理定义中参数的定义顺序不同)

调用new agenttype()时,如何包含参数名称(或定义)以避免此问题,确保将正确的值分配给正确的参数?

问题源于Anylogic的触发函数逻辑中的一个bug。我们有一个拆分,它创建一个新代理并在“退出时复制”事件上分配代理属性,然而Anylogic所做的是创建代理,将其转发到下一个逻辑块(决策节点),然后执行决策代码-现在所有错误都是因为代理的属性未定义-然后才执行分配代理属性的“退出时复制”事件。非常令人沮丧。

共有1个答案

濮阳茂材
2023-03-14

这实际上不是一个bug,它是在“随机性”部分的“模拟实验属性”中定义的,带有“同时事件的选择模式”属性。默认为后进先出,但如果你想在你的情况下使用相反的行为,你应该使用先进先出。。。我也总是使用后进先出,在这种情况下,有时我可能会在分割和下一个块之间使用1毫秒的辅助延迟,以便手动控制顺序。。。如果你这样做,你将解决你的问题事实上。。。分割后只需使用0.001毫秒的延迟

现在,从代理类型问题来看,类构造函数的参数应该按顺序编写,知道正确顺序的唯一方法是在编写新的agenttype()时使用自动完成功能。。。自动完成将告诉您编写构造函数参数的顺序。

 类似资料:
  • 我正在开发一个模型来评估动物种群控制的不同干预措施。我试图使用自定义分发来分配代理在创建或稍后添加到总体时应该处于的状态。 我做了以下工作 我创建了一个选项列表,列出了模型中的所有状态 我为初始人口创建了一个自定义分布,使用选项列表为每个州分配代理的初始人口分布3我为移民创建了第二个自定义分布(因为代理将在整个模拟过程中定期添加到人口中),使用相同的选项列表但具有不同的分布值。 对于第一次超时转换

  • 我正在创建一个我想经常重用的AnyLogic代理。在许多AnyLogic代理和组件中,有一些空间可以输入代码,如“on receive”、“Action”或“function body”。在构建模型时,这些将被编译到代理中。普通程序员是如何做到这一点的? 例如,假设我有这个代理(显然是伪代码): 客户端可能会使用它如下: 这可能吗?

  • 我是Anylogic的新手,我正在尝试使用Anylogic进行建模。我想通过网络将GIS环境中的6种类型的代理连接起来。 连接的条件如下:代理类型1有10个代理,代理类型2有16个代理,代理类型6有20个代理。 为此,我使用了“链接到代理”,并通过单击属性中的“绘制连接代理的线条”tickbox来动画连接。当我运行模型时,代理之间的连接线没有显示,但是结果显示代理是连接的。 有什么建议(显示代理之

  • 我有一个代理“Tankfarm”,它是一个有一定规则的罐的集合,这些罐的装满顺序或产品的使用等。这些罐的数量(可见或不可见)和初始内容--它们包含的流体类型和此类流体的数量,等等,都是在模型启动时从Excel表格中读取的。“产品”本身是由一个代理定义的,该代理在启动时从另一个Excel表中读取产品列表,每个产品都有其属性。 因此,在一次模拟运行中,产品可能是不同等级的汽油。在下一次运行中,可能是化

  • 我已经制作了一个列[日期,名称,性别和年龄]的表,并将其链接到一个代理。我想使用选择输出框将具有特定名称(属性)的代理分离到特定块。我已经从表中创建了名称作为代理的参数。但是当我试图将条件放入选择输出块((人员)代理)时。name==“ahmed”或agent.name==“ahmed”没有条件为真,所有条件都被绕过到假端口。 我也尝试在代理中声明变量,并尝试将其传递select_output但结

  • 我创建了一个带有一些属性(列)的电子表格;然后在Anylogic中创建一个代理(代理群体)并从DB加载它。运行模型。工作完美,它显示我有一个代理人口“产品”与6个代理…(型号有流体源,管道,槽,阀门,流体处理,所有基本配置)