如何在 Netlogo 中 link 不同代理集的海龟
How to link turtles of different agentsets in Netlogo
您好,我是 NetLogo 的新手,非常感谢您协助创建代理之间的链接。
我已经编写了这段代码,它出于某种原因没有创建链接,但也没有指示错误。
我想在海龟之间随机分配链接。
`
turtles-own [wealth]
breed [consumers consumer]
breed [investors investor]
to setup
clear-all
setup-people
if variant = "network" [ make-network ]
reset-ticks
end
to setup-people
set-default-shape turtles "person"
create-turtles initial-persons [
setxy random-xcor random-ycor
let breed-rand random-float 200 ;;change this into odd and even numbers later
set wealth 1000
ifelse breed-rand > 100 [
set breed consumers
set color red
] [
set breed investors
set color sky
]
]
end
to make-network
ask turtles [
create-links-with other turtles
show my-links
]
end
to go
ask turtles [
economic-activity
]
tick
end
to economic-activity
ifelse breed = consumers [
consume
] [
if breed = investors
[invest]
]
end
to consume ;; turtle procedure
if breed = consumers [
fd 5
set wealth wealth - 1
]
end
to invest
if breed = investors [
fd 5
set wealth wealth + 1
]
end`
提前致谢!
最好的,
D
我没有在代码中看到没有创建 link 的原因。
我假设控件“变体”存在并且实际上设置为“网络”并且您没有拼错“网络”。
要随机link一只乌龟和另一只乌龟,你需要使用“with [ not any? Link-neighbors ]”以避免已经有 links 的海龟和“one-of”来选择其中的一个。用于强调评估顺序的括号。它们不是必需的。
One-of ( ( other turtles ) with [ not any? Link-neighbors ] ) )
您可能需要额外的代码来处理所有海龟都被 linked 而这只海龟没有可用伙伴的情况。
要随机link多只乌龟你需要决定你想要多少link,或者什么规则决定linking.
- 接近程度?
- 每只乌龟的特定数量 link?
- link个随机数?
- 如果是随机的,确定数字的方法是什么?
- (我们经常看到这个问题是“什么样的分布函数?”
您可能会使用“n-of”记者。喜欢
Let eligible-link-partners other turtles with [ <selection-reporter> ]
Let link-quantity <number-or-a-number-reporter>
Make-links-with n-of link-quantity Eligible-link-partners
您好,我是 NetLogo 的新手,非常感谢您协助创建代理之间的链接。
我已经编写了这段代码,它出于某种原因没有创建链接,但也没有指示错误。
我想在海龟之间随机分配链接。
`
turtles-own [wealth]
breed [consumers consumer]
breed [investors investor]
to setup
clear-all
setup-people
if variant = "network" [ make-network ]
reset-ticks
end
to setup-people
set-default-shape turtles "person"
create-turtles initial-persons [
setxy random-xcor random-ycor
let breed-rand random-float 200 ;;change this into odd and even numbers later
set wealth 1000
ifelse breed-rand > 100 [
set breed consumers
set color red
] [
set breed investors
set color sky
]
]
end
to make-network
ask turtles [
create-links-with other turtles
show my-links
]
end
to go
ask turtles [
economic-activity
]
tick
end
to economic-activity
ifelse breed = consumers [
consume
] [
if breed = investors
[invest]
]
end
to consume ;; turtle procedure
if breed = consumers [
fd 5
set wealth wealth - 1
]
end
to invest
if breed = investors [
fd 5
set wealth wealth + 1
]
end`
提前致谢!
最好的, D
我没有在代码中看到没有创建 link 的原因。
我假设控件“变体”存在并且实际上设置为“网络”并且您没有拼错“网络”。
要随机link一只乌龟和另一只乌龟,你需要使用“with [ not any? Link-neighbors ]”以避免已经有 links 的海龟和“one-of”来选择其中的一个。用于强调评估顺序的括号。它们不是必需的。
One-of ( ( other turtles ) with [ not any? Link-neighbors ] ) )
您可能需要额外的代码来处理所有海龟都被 linked 而这只海龟没有可用伙伴的情况。
要随机link多只乌龟你需要决定你想要多少link,或者什么规则决定linking.
- 接近程度?
- 每只乌龟的特定数量 link?
- link个随机数?
- 如果是随机的,确定数字的方法是什么?
- (我们经常看到这个问题是“什么样的分布函数?”
您可能会使用“n-of”记者。喜欢
Let eligible-link-partners other turtles with [ <selection-reporter> ]
Let link-quantity <number-or-a-number-reporter>
Make-links-with n-of link-quantity Eligible-link-partners