代码之家  ›  专栏  ›  技术社区  ›  Pris Cunha

选择补丁分析邻居netlogo

  •  0
  • Pris Cunha  · 技术社区  · 7 年前

    我正试图塑造一个从事轮换种植的社区。为此,我希望每个家庭每年都更换补丁。根据工作时间和人数的不同,每个家庭可以有不同的作物种植面积。我希望他们能够选择一个有足够数量的森林斑块来开放他们的作物。例如,一个家庭的作物面积为3,因此新位置需要是一个森林斑块,另外两个森林斑块相邻。知道我该如何具体说明吗?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nicolas Payette    7 年前

    以下是一个可能的解决方案:

    patches-own [ patch-type ]
    breed [ households household ]
    
    to setup
      clear-all
      ask patches [ set patch-type one-of ["forest" "rock" "sand"] ]
      let forest-neighbors-needed 2
      create-households 100 [
        let candidate-locations patches with [
          not any? households-here and
          patch-type = "forest" and
          count neighbors with [ patch-type = "forest" ] >= forest-neighbors-needed
        ]
        ifelse any? candidate-locations [
          move-to one-of candidate-locations
        ] [
          error "No suitable location found!"
        ]
      ]
    end
    

    这种方法不是最有效的,因为它会为它创建的每个家庭重建一组可能的位置,但是如果你的模型不是两个大的,它应该不会有太大的区别。

    请注意,您没有向我们提供关于您的模型是如何组织的详细信息,因此我不得不做出一些假设。下次,请告诉我们更多:你有什么品种,它们的变量是什么,等等。理想情况下,发布一段代码,展示你已经尝试过的内容。

    推荐文章