如何在 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