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

在Anylogic中创建代理时,使用自定义分发分配代理的状态

慕弘伟
2023-03-14

我正在开发一个模型来评估动物种群控制的不同干预措施。我试图使用自定义分发来分配代理在创建或稍后添加到总体时应该处于的状态。

我做了以下工作

  1. 我创建了一个选项列表,列出了模型中的所有状态
  2. 我为初始人口创建了一个自定义分布,使用选项列表为每个州分配代理的初始人口分布3我为移民创建了第二个自定义分布(因为代理将在整个模拟过程中定期添加到人口中),使用相同的选项列表但具有不同的分布值。

对于第一次超时转换:statechart==state1?参数1:0

其中StateChart是agent中状态图的名称State1是选项列表中分配给第一个状态的名称Parameter1是参数名,其值用于转换(例如断奶持续时间=2个月)

对于我的第二次超时转换:stateChart==state1 stateChart==state2?参数2:0

是否有一个不同的代码,我可以为我的模型的最后2个过渡,使我的代理出现在所有不同的状态我的模型?

谢谢。

共有1个答案

刘兴朝
2023-03-14

我必须在我负责的市场动态模型中为客户群体的初始化设置一个状态,该状态通常由消息更改。为了实现这一点,我对每个选定的客户使用以下代码:

oCustomer.sc_switchingBehaviour.receiveMessage("moveOn");
oCustomer.onChange();

其中状态图是SC_SwitchingBehavior,通常会导致它们改变状态的消息是“Moveon”。

我没有一个速率转换,我需要这样做,所以不能直接回答这个查询,但是,为了状态初始化的目的,你能不能(概念上)把速率转换成概率,然后使用它?

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

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

  • 我正在AnyLogic中构建一个DES队列模型。我之前已经构建了几个模型,在这些模型中,我使用定义自己的代理类型来存储代理参数,例如,这些参数改变了它们在队列网络中的流动方式。在过去,这并没有引起错误。但是,在构建了一个新的、非常简单的M/M/1队列模型(源、服务和接收器)并定义了一个新的代理类型“myAgent”之后,即使我没有保存或访问任何代理属性,我也会遇到错误: 看来,或许是新定义的代理不

  • 我有一群“乘客”代理人,其中每一个代理人都会向另一个“机场”代理人发出请求(“OrderPassenger”代理人类型)。此时,“机场”代理人必须通过“机场建议”代理人响应请求,并将其发送给“乘客”群体中的特定“乘客”。 我尝试使用:send(airportSuggestion,main.passengers(orderPassenger.passenger));但是乘客。乘客不是整数类型。 我尝

  • 我想为我的代理分配优先级,然后根据该优先级对它们进行排队。我有一个代理容器,它有两个参数载体(可以是卡车或火车) 提前谢谢。

  • 我想知道如何计算在任何逻辑中一个容器中有多少自定义代理,以便我可以相应地使用下拉块中的值。 我有4个定制代理,a、b、c和d,以及4个火车站1、2、3和4。每种类型的药剂都需要按照一定的比例滴下,即40%的a需要在3时滴下。 我知道如何使用丢弃块,我只是无法计算容器中每个代理的数量。