Netlogo 查找包含以下数据之一的最近节点:
我有两个品种Netlogo 查找包含以下数据之一的最近节点:,netlogo,Netlogo,我有两个品种 breed[nodes] breed [messages] nodes-own [data] messages-own [basedata] 我有一个有n个节点的网络。每个节点都有特定的数据。我选择了一个随机的海龟作为接收器。在我的网络中,数据从海龟(首先所有海龟都是节点)分发到接收器。每个拦路的节点都成为一条消息。每条消息也有一个内存空间保留从该消息传递的数据。messages basedata保留原始数据。 我想找到最近的节点,例如“D1” 问题是当你这样做的时候 用[(da
breed[nodes]
breed [messages]
nodes-own [data]
messages-own [basedata]
我有一个有n个节点的网络。每个节点都有特定的数据。我选择了一个随机的海龟作为接收器。在我的网络中,数据从海龟(首先所有海龟都是节点)分发到接收器。每个拦路的节点都成为一条消息。每条消息也有一个内存空间保留从该消息传递的数据。messages basedata保留原始数据。
我想找到最近的节点,例如“D1”
问题是当你这样做的时候
用[(data=“D1”)或(basedata=“D1”)]询问至少一只海龟。
它可以引用节点
和消息
,而彼此不共享相同的变量
例如:当它在节点上运行时,检查[(basedata=“D1”)]
时将返回错误,因为它不拥有basedata
。同样,当它在消息上运行时,在检查[(data=“D1”)]
时也会返回错误。但是,由于您尚未创建任何消息
,因此它将始终返回错误:节点不拥有变量BASEDATA
因此,在引用agentset时,您需要特别注意,因为任何包含所用变量的命令块都会对变量所属的as敏感。问题是当您这样做时
用[(data=“D1”)或(basedata=“D1”)]询问至少一只海龟。
它可以引用节点
和消息
,而彼此不共享相同的变量
例如:当它在节点上运行时,检查[(basedata=“D1”)]
时将返回错误,因为它不拥有basedata
。同样,当它在消息上运行时,在检查[(data=“D1”)]
时也会返回错误。但是,由于您尚未创建任何消息
,因此它将始终返回错误:节点不拥有变量BASEDATA
因此,在引用agentset时,您需要特别注意,因为任何包含所用变量的命令块都会对变量所属的as敏感。问题是当您这样做时
用[(data=“D1”)或(basedata=“D1”)]询问至少一只海龟。
它可以引用节点
和消息
,而彼此不共享相同的变量
例如:当它在节点上运行时,检查[(basedata=“D1”)]
时将返回错误,因为它不拥有basedata
。同样,当它在消息上运行时,在检查[(data=“D1”)]
时也会返回错误。但是,由于您尚未创建任何消息
,因此它将始终返回错误:节点不拥有变量BASEDATA
因此,在引用agentset时,您需要特别注意,因为任何包含所用变量的命令块都会对变量所属的as敏感。问题是当您这样做时
用[(data=“D1”)或(basedata=“D1”)]询问至少一只海龟。
它可以引用节点
和消息
,而彼此不共享相同的变量
例如:当它在节点上运行时,检查[(basedata=“D1”)]
时将返回错误,因为它不拥有basedata
。同样,当它在消息上运行时,在检查[(data=“D1”)]
时也会返回错误。但是,由于您尚未创建任何消息
,因此它将始终返回错误:节点不拥有变量BASEDATA
因此,在引用agentset时需要明确,因为任何包含所用变量的命令块都会对变量所属的as敏感。问题中所述目标与代码之间存在冲突,这表明您尚未完成对所做操作的思考。(您发布的代码也不完整;例如,它不包括您的
globals
声明或设置消息
),因此首先要问一个问题:您真的打算在test1
中使用turtles
而不是节点
?如果是,则意味着您允许消息
成为您的接收器。所以我假设没有,正如你的实际问题所暗示的那样。引入新的全局接收器
和
to test1a
ask one-of nodes [ ;move this to setup!
set sink self
set label "sink" set color red
]
ask sink [
let _choice min-one-of (other nodes with [data = "D1"]) [distance myself]
ask _choice [] ;do something
]
end
这回答了你的问题。如果你真的想从所有海龟中做出选择,正如你发布的代码所建议的那样,你必须问一个新问题。你在问题中陈述的目标和你的代码之间存在冲突,这表明你还没有完成对你正在做的事情的思考。(您发布的代码也不完整;例如,它不包括您的
globals
声明或设置消息
),因此首先要问一个问题:您真的打算在test1
中使用turtles
而不是节点
?如果是,则意味着您允许消息
成为您的接收器。所以我假设没有,正如你的实际问题所暗示的那样。引入新的全局接收器
和
to test1a
ask one-of nodes [ ;move this to setup!
set sink self
set label "sink" set color red
]
ask sink [
let _choice min-one-of (other nodes with [data = "D1"]) [distance myself]
ask _choice [] ;do something
]
end
这回答了你的问题。如果你真的想从所有海龟中做出选择,正如你发布的代码所建议的那样,你必须问一个新问题。你在问题中陈述的目标和你的代码之间存在冲突,这表明你还没有完成对你正在做的事情的思考。(您发布的代码也不完整;例如,它不包括您的
globals
声明或设置消息
),因此首先要问一个问题:您真的打算在test1
中使用turtles
而不是节点
?如果是,则意味着您允许消息
成为您的接收器。所以我假设没有,正如你的实际问题所暗示的那样。引入新的全局接收器
和
to test1a
ask one-of nodes [ ;move this to setup!
set sink self
set label "sink" set color red
]
ask sink [
let _choice min-one-of (other nodes with [data = "D1"]) [distance myself]
ask _choice [] ;do something
]
end
这回答了你的问题