如何创建一个邻居网络?

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

你好,我是一个没有编程背景的netlogo新手,我正试图创建一个 "邻居 "网络,使用GIS扩展,到目前为止,我使用的是 in-radius 函数,但我不确定是否是合适的函数。radius 在Netlogo中

这是代码。

to setup
  clear-drawing
  clear-all
  reset-ticks

  ; zoom to study area
  resize-world 00 45 0 20
  set-patch-size 20

  ; upload city boundries
  set mosul-data gis:load-dataset"data/MosulBoundries.shp"
  gis:set-world-envelope gis:envelope-of mosul-data
  gis:apply-coverage mosul-data "Q_NAME_E" neighbor


to Neighbour-network
  ;; set 7 neighbour agents inside the city  
  ask turtles [ 
    let target other turtles in-radius 1 
    if any? target
    [ask one-of target [create-link-with myself]]
  ]
  print count links

我想为每个社区 neighbor 每个代理都与7个最近的邻居相连,我猜测在这条线上 if any? target 有些东西必须改变,但我所有的尝试是无用的,到目前为止。

先谢谢你

gis netlogo
1个回答
2
投票

我不清楚GIS与这个问题的关系,你也没有提供创建代理的代码,所以我无法给出完整的答案。NetLogo有一个坐标系,自动内置的。每个代理在该坐标系上都有一个位置,每个补丁占据1个单位乘1个单位的正方形空间(以整数坐标为中心)。该 in-radiusdistance 基元是以距离为单位的。

然而,如果您只想连接到最近的7只海龟,您不需要这些,因为NetLogo可以简单地直接找到这些海龟,找到那些与问海龟距离最小的海龟。这使用的是 min-n-of 以求出给定的龟的数量与相关的最小值,以及 distance [myself] 的东西进行最小化。整个事情,包括用生成的龟甲创建链接,都可以在一行代码中完成。

下面是一个完整的模型,向你展示它的样子。

to testme
  clear-all
  create-turtles 100 [setxy random-xcor random-ycor]
  ask n-of 5 turtles
  [ create-links-with min-n-of 7 other turtles [distance myself]
  ]
end

-1
投票

Sarah:

1) 这帮助我理解了NetLogo中 "in-radius "的使用(或者说半径单位)。当你在补丁上下文中使用 "in-radius 1 "时,将选择5个补丁(问龟所在的补丁和四个邻居。并非所有相邻的8个补丁).

enter image description here

2)可以考虑使用'min-one-of target [ distance myself ]'代替'one-of target'。

min-one-of。http:/ccl.northwestern.edunetlogodocsdictmin-one-of.html。

自己的距离。http:/ccl.northwestern.edunetlogodocsdictdistance.html。

to Neighbour-network
; set 7 neighbour agents inside the city
ask turtles [
    let target other turtles in-radius 1
    let counter 0
    while [ count target > 0 and counter < 8 ]
    [ ask min-one-of target [ distance myself ] [
        create-link-with myself
        set counter counter + 1
      ]
    ]
    show my-links
  ]

3)考虑探索Nw扩展。https:/ccl.northwestern.edunetlogodocsnw.html。

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