如何限制代理可以在模型中创建的链接数?

How to limit the number of links an agent can make in a model?

我正在建立一个模型,其中包含许多通过链接连接的代理人,如下所示:

ask turtles [create-links-with turtles in-radius vision with [self != myself]]

但我希望能够限制单个代理可以建立的连接数。我已经尝试了几件事,但无济于事。

希望对您有所帮助。

您可以随机 selected 海龟子集 link 使用 n-of 原语,如下所示:

ask turtles [create-links-with n-of 3 turtles in-radius vision with [self != myself]]

然而,如果您想要一个固定的上限,您将需要做一些更棘手的事情,因为这不会阻止其他海龟为同一只海龟创建 links。如果你想要固定数量的 links(在下面的例子中是 5),你可以这样做:

  ask turtles
  [ let new-links 5 - count my-links
    let candidates other turtles with [ count my-links < 5 ]
    create-links-with n-of min (list new-links count candidates) candidates
    [ ... ]
  ]

如果你只是想要一个上限,你可以要求任何具有 my-links > limit 的海龟随机 select 删除适当数量的 links。所以,在创建 links 之后,像这样的东西(未测试):

ask turtles with [count my-links > LIMIT]
[ if count my-links > LIMIT [ask n-of (count my-links - LIMIT) my-links [die]] ]