首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >指定代理的位置和萌芽命令时出现问题

指定代理的位置和萌芽命令时出现问题
EN

Stack Overflow用户
提问于 2020-06-10 04:33:08
回答 1查看 32关注 0票数 0

我的子模型的目标是模拟狼代理如何避免具有高于狼的耐受阈值的人类密度的补丁。在运行我的模型时,sprout命令没有像我期望的那样在城市补丁中生成人类代理的数量。在城市补丁中创建人类的代码是:

问补丁[ if self =城市补丁萌芽-人类初始数字-人类]

这是我的界面选项卡的图像:NetLogo space

灰色是我的城市斑块,棕色是草地斑块,绿色是森林斑块。为什么我的人类智能体没有出现在灰色(城市)补丁中,并且智能体的数量反映了最初的人类数量?

下面是创建人工代理的代码:code

我已经指定了位于城市(灰色)补丁中的人工代理的xy坐标,但当我运行模型时,只有一个人工代理出现。我如何正确地编码初始数字人类以使用sprout命令进行连接?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-10 16:34:12

正如我想您现在已经发现的那样,在一组补丁中随机分配一定数量的海龟的最简单方法是使用create-turtles而不是sprout。这是因为sprout在每个正在萌发海龟的补丁上创建了指定数量的海龟,因此您需要权衡要创建的总数量和补丁的数量。但是,如果您希望实现均匀分布而不是随机位置,则该选项非常有用。下面的代码可以同时完成这两个任务。

代码语言:javascript
运行
复制
globals [urban-patches n-humans]

to setup
  clear-all
  set urban-patches n-of 20 patches
  ask urban-patches [set pcolor gray]
  set n-humans 100
  make-humans-sprout
  make-humans-create
end

to make-humans-sprout
  ask urban-patches
  [ sprout n-humans / count urban-patches
    [ set color red
      set xcor xcor - 0.5 + random-float 1
      set ycor ycor - 0.5 + random-float 1
    ]
  ]
end

to make-humans-create
  create-turtles n-humans
  [ set color blue
    move-to one-of urban-patches
      set xcor xcor - 0.5 + random-float 1
      set ycor ycor - 0.5 + random-float 1
  ]
end

请注意,对xcorycor的调整是因为sproutmove-to始终将乌龟放置在补丁的中心,并且没有用于在特定补丁的随机位置放置的原语。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62291371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档