AnyLogic Agent 变量初始化
AnyLogic Agent Initialization of variables
我是AnyLogic新手。当我定义一个代理类型并向它添加参数时,我可以调用一个构造函数
MyAgentType agent1 = new MyAgentType(param1, param2, ..., paramn)
参数在新实例上设置,可用于工作流和其他功能 - 很好。
现在我想在同一个代理类型上定义一些变量,但由于它是一个变量,所以它不包含在构造函数中,需要在实例化后显式设置。但是,如果我现在尝试使用 enter.take(agent1) 将这个新实例注入到流程图中,则流程图中的代理似乎“松散”了变量值(断点显示它为空)。
我错过了什么?
enter 块应该用于插入模型中已经存在的代理作为总体的一部分...当此总体存在时(例如称为 myAgents),您可以改为执行 MyAgentType agent1 = add_myAgents(param1,param2, ...,paramn)
,其中包括模型中的代理作为该总体的一部分,然后您可以安全地执行 agent1.variable=x;然后 enter.take(agent1);
似乎当您生成一个不属于具有输入块的总体的新代理时,它只是将变量重置为其初始值,并且可能重置代理中的所有其他内容(参数除外) ...虽然我不知道为什么。
我是AnyLogic新手。当我定义一个代理类型并向它添加参数时,我可以调用一个构造函数
MyAgentType agent1 = new MyAgentType(param1, param2, ..., paramn)
参数在新实例上设置,可用于工作流和其他功能 - 很好。
现在我想在同一个代理类型上定义一些变量,但由于它是一个变量,所以它不包含在构造函数中,需要在实例化后显式设置。但是,如果我现在尝试使用 enter.take(agent1) 将这个新实例注入到流程图中,则流程图中的代理似乎“松散”了变量值(断点显示它为空)。
我错过了什么?
enter 块应该用于插入模型中已经存在的代理作为总体的一部分...当此总体存在时(例如称为 myAgents),您可以改为执行 MyAgentType agent1 = add_myAgents(param1,param2, ...,paramn)
,其中包括模型中的代理作为该总体的一部分,然后您可以安全地执行 agent1.variable=x;然后 enter.take(agent1);
似乎当您生成一个不属于具有输入块的总体的新代理时,它只是将变量重置为其初始值,并且可能重置代理中的所有其他内容(参数除外) ...虽然我不知道为什么。