如何限制代理可以在模型中创建的链接数?
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]] ]
我正在建立一个模型,其中包含许多通过链接连接的代理人,如下所示:
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]] ]