Netlogo-选择距特殊代理人给定距离的所有海龟

问题描述 投票:0回答:1

我必须从一个固定点选择并计算最近的海龟,但是从某种意义上说,我希望距离是可变的,因为我有一个滑块,并且我想用该距离选择最近的海龟从该点给定的距离。我已经尝试了很多解决方案,也都使用了in-radius函数,但是它无法产生所需的输出。谁能帮我?预先感谢。

netlogo
1个回答
0
投票

Enrico,我没有足够的声誉积分来发表评论,所以我将其发布为答案。您的问题是两个星期前,您可能不再需要答案。

如果下面的讨论正确地描述了您的问题及其所涉及的通用逻辑,那么您应该有足够的能力来编写基本的NetLogo模型,或者编写基本的控制结构并将重点放在特定的位置上。您无法弄清楚NetLogo语法无法实现所需的功能。或者,也许您已经有代码,而我们在这里还没有看到它。

那时,出色的StackOverflow成员应该能够帮助您在共享的上下文中回答特定的问题,并了解您要执行的操作,所使用的代码以及尝试运行模型时会发生的情况。

以下是对您的问题的正确重述吗?

情况

这种情况是剧院中有多排座位的舞台。人们一次进入,总是坐在最靠近舞台的那排,那里至少还有一个空座位。当该行已满时,座位将从距舞台更远的下一行开始。当所有行都填满后,模拟停止。在一个有多个空座位的行中,选择的座位要最大化与其他就座人员(包括其他行中的人)的集体距离。

问题-剧院是在舞台周围是矩形的,成排的线性座位,还是在圆形的圆形同心圆的成排座位?

设计注意事项

集合距离度量的计算可以放在一个单独的例程中,并且不会影响其余基本的NetLogo模型设置。

一些可能的指标可能是:1)最大化与同一行中最近的就座人员的距离2)最大化到整个剧院中最近的就座人员的距离3)最大化到同一排的每个人的距离总和4)最大化整个剧院中每个人的距离总和5)最大化每个人的距离平方和的平方根*在剧院里抽雪茄的人。

无论选择何种度量,从逻辑上讲,我们总是会做同样的事情:

  • 选择最初的座位安排和可能的初始就座人员
  • 选择要进行下一步的行
  • 循环

  • 选择下一个要处理的行,如果所有行已满,则退出

  • 对于该行中的每个空座位

  • 查找与计算有关的座席的座席集
  • (例如,与空座位在同一排的座位)
  • 对于该代理集,计算集合距离度量
  • 然后选择产生最大集体距离度量的空座位
  • 坐在那里
  • 根据需要更新全局统计信息
  • 根据需要显示统计信息
  • 结束循环

NetLogo实现

尽您所能,然后在这里回来。

您可能想让人和容纳两种不同的海龟。您可以在“设置”中布置所有座位,然后随便添加人员。

座位可以拥有变量“行”和“被占用?”使用“布局圆”功能可以轻松地设置海龟的圆环。也许将未占用的座位变成2号绿色圆圈,并在占用时将其更改为红色。

© www.soinside.com 2019 - 2024. All rights reserved.