NetLogo:是否可以访问尚未创建的海龟的变量?

NetLogo:是否可以访问尚未创建的海龟的变量?,netlogo,Netlogo,我正在写一段代码,其中运行了不同类型工厂的投资模拟。为了计算一项投资是否值得一试,将对拟建工厂(如钢铁厂)未来的收入和成本进行分析。要做到这一点,计算投资的海龟(例如一家公司)需要知道钢铁厂的生产能力 to test let future-steel-production ([max-processing-capacity * operational-time] of one-of steel-factories end 但如果尚未建造(即创建)任何钢铁厂,我会得到错误代码: 期望输入为代

我正在写一段代码,其中运行了不同类型工厂的投资模拟。为了计算一项投资是否值得一试,将对拟建工厂(如钢铁厂)未来的收入和成本进行分析。要做到这一点,计算投资的海龟(例如一家公司)需要知道钢铁厂的生产能力

to test
  let future-steel-production ([max-processing-capacity * operational-time] of one-of steel-factories
end
但如果尚未建造(即创建)任何钢铁厂,我会得到错误代码:

期望输入为代理或代理集,但没有得到任何人

当代理尚未创建时,是否有方法访问代理的变量

当代理尚未创建时,是否有方法访问代理的变量

不,这在逻辑上是不可能的

但这并不意味着你不能计算出这些变量的未来值

您需要问问自己,如果要实际创建代理,您将如何初始化这些变量。这些值(
max processing capacity
operation time
)必须来自某个地方,对吗?您是否有一些工厂类型的定义存储在文件中?通过报告器或某个全局变量访问

如果要创建一个具有以下内容的工厂:

create-factories 1 [
  set max-processing-capacity ???
  set operational-time ???
]
…您将用什么替换
?这就是你的答案。在计算未来钢铁产量时,您需要使用在工厂创建时使用的任何东西

当代理尚未创建时,是否有方法访问代理的变量

不,这在逻辑上是不可能的

但这并不意味着你不能计算出这些变量的未来值

您需要问问自己,如果要实际创建代理,您将如何初始化这些变量。这些值(
max processing capacity
operation time
)必须来自某个地方,对吗?您是否有一些工厂类型的定义存储在文件中?通过报告器或某个全局变量访问

如果要创建一个具有以下内容的工厂:

create-factories 1 [
  set max-processing-capacity ???
  set operational-time ???
]

…您将用什么替换
?这就是你的答案。在计算未来钢铁产量时,您需要使用在工厂创建时使用的任何工具。

谢谢您的回复。事实上,我有这些工厂的价值观,但在创建钢铁厂之前,仍然需要能够访问这些价值观,以便决定要创建的钢铁厂。因此,我可以使用相同的值创建额外的变量,或者在开始时创建一个工厂,该工厂在模型中不活动,但只提供值。我不确定这是否有帮助,但在类似的情况下,我实际创建了代理(在我的案例中是一个新市场),看看它是否有利可图,然后干脆让它死,如果它不是。如果创建涉及到其他代理的链接,您需要确保在新代理死亡之前清理它们,但假设您有代码在公司自然死亡时执行此操作。谢谢您的回复。事实上,我有这些工厂的价值观,但在创建钢铁厂之前,仍然需要能够访问这些价值观,以便决定要创建的钢铁厂。因此,我可以使用相同的值创建额外的变量,或者在开始时创建一个工厂,该工厂在模型中不活动,但只提供值。我不确定这是否有帮助,但在类似的情况下,我实际创建了代理(在我的案例中是一个新市场),看看它是否有利可图,然后干脆让它死,如果它不是。如果创建涉及到与其他代理的链接,您需要确保在新代理死亡之前清理它们,但当一家公司自然死亡时,您可能有代码来执行此操作。