NetLogo:找出所有相互链接的海龟,并将它们分配给一个组id

NetLogo:找出所有相互链接的海龟,并将它们分配给一个组id,netlogo,Netlogo,我已经搜索了上周的所有主题,还没有找到解决问题的方法。情况如下: 我有各种各样的海龟,它们彼此相连 我想为每个组分配一个组名或id 为了做到以上几点,我想我需要一个程序,找出一只海龟的id,然后告诉我这只海龟与哪些其他海龟有联系。例如,我有一组4只海龟,它们彼此相连。他们的ID是1,2,3,4。现在我想得到每只海龟的列表,它还告诉我它和谁有联系。下面是一个示例列表: Turtle 1 -> Linked to Turtle 2, 3 and 4 Turtle 2 -> Linked

我已经搜索了上周的所有主题,还没有找到解决问题的方法。情况如下:

  • 我有各种各样的海龟,它们彼此相连
  • 我想为每个组分配一个组名或id
  • 为了做到以上几点,我想我需要一个程序,找出一只海龟的id,然后告诉我这只海龟与哪些其他海龟有联系。例如,我有一组4只海龟,它们彼此相连。他们的ID是1,2,3,4。现在我想得到每只海龟的列表,它还告诉我它和谁有联系。下面是一个示例列表:

    Turtle 1 -> Linked to Turtle 2, 3 and 4
    Turtle 2 -> Linked to Turtle 1, 3 and 4
    ...
    Turtle 4 -> Linked to Turtle 1, 2 and 3
    
    曾经我现在知道了这一点(虽然可能有一个更简单的方法)。我可以给这4只海龟分配一个组id

    非常感谢任何反馈/帮助

    以下是代码的一部分:

    to go
        ask turtles [    
          set neighbours turtle-set turtles in-radius neighbourhood
          set turtle-dim-similar min-one-of other neighbours [myfunc myself self]
          create-link-with turtle-dim-similar  
        ]
    
       set beasts sort-by [[who] of ?1 < [who] of ?2] turtles 
       foreach beasts [ 
           ask ? [ ;; each agent undertakes the list of commands 
               set closest sort [link-neighbors] of turtle who 
               print (word "id:" who " ; val1:" value1 " ; val2:" value2 " ; closest:" closest) 
           ] 
       ]
     end
    
    要走了
    询问海龟[
    邻居们把海龟安置在附近的半径范围内
    把乌龟放在其他邻居中[我自己]
    使用类似的工具创建链接
    ]
    设置动物按[1]海龟中的[1]海龟中的[2]海龟中的[3]海龟进行排序
    每只野兽[
    询问?[;;每个代理都执行命令列表
    设置海龟的最近排序[链接邻居]
    打印(单词“id:”谁“;val1:”value1“;val2:”value2“;最近的:“最近的”)
    ] 
    ]
    结束
    
    如果您使用的是定向链接,即使用“创建链接到”、“创建链接自”、“创建链接到”或“创建链接自”创建的链接,那么您需要的是“外链接邻居”。它报道了一组和它有关的海龟

    如果您使用的是未定向链接、使用“创建链接与”或“创建链接与”创建的链接,请使用“链接邻居”

    这解决了后半部分使用递归的第一部分问题

    Turtles-own[group-id]
    To id [tag]
         Set group-id tag
         Ask link-neighbors with[Group-id != tag]
    [Id tag]
      End
    

    Out link邻居提供了一组链接到的海龟。非常感谢您的回复。我尝试过使用链接邻居和各种变体,但我不断得到一个“品种”错误。我没有在模型中定义任何品种,因为我不需要它们。稍后将发布一些示例代码…是“链接是一个无方向的品种”吗?如果是这样,请尝试链接邻居或确保您使用“创建链接与”来创建它们。您好,King Ink,是的,确实如此,我正在使用“创建链接与”这里有一段代码,我正在尝试实现这一点:
    设置野兽排序依据[[who]of?1<[who]of?2]海龟
    每个野兽[
    问?[;;每个代理执行命令列表
    设置海龟的最近排序[链接邻居]
    打印(单词“id:“who”;val1:“value1”;val2:“value2”;closest:“closest)
    ]
    Ps.我也尝试过使用我的链接,并且能够获得链接到特定海龟的2只海龟的海龟ID,但不知道链接是如何继续的。例如,海龟2有指向海龟1和海龟3的链接,但我想知道的是这是如何进行的,因为海龟3链接到海龟4,所以我想要的是所有t的列表urtles相互链接..例如打印输出应该告诉我Turtle 2链接到1、2和3:)非常感谢:)这非常有用。如果我现在在代码中实现了这一点,并且据我所知,这会为每个Turtle分配一个组id,现在我需要找到一种方法来递归它。这是我真的被困了一段时间,(对不起,我真的觉得自己很傻。我知道这应该是我的职责)只要让一只乌龟跑id就行了。让乌龟1[id 1]跑吧,这太棒了,它现在开始工作了……非常感谢你的帮助,非常感谢:)