Merge 如何合并具有相同值的相邻面片以减少处理时间?

Merge 如何合并具有相同值的相邻面片以减少处理时间?,merge,netlogo,Merge,Netlogo,由于我的模型变得巨大(大约有17.500个补丁和2000只海龟,它们必须将每个补丁的观点与所有其他海龟进行比较),我想知道是否有一个智能的解决方案来合并补丁以减少补丁ID的数量。海龟的数量已经减少到10只。然而,处理过程可能还需要很长时间 对于所有补丁,我创建了一个字典,其中存储了一个ID作为键,以及一个基于土地利用和距离的意见值。我有四个不同的土地利用类别,值为1-4。我想的是询问邻居是否有同样的土地使用价值。如果这是真的,所有的补丁应该得到相同的ID和相同的意见在字典中作为补丁在中间。这是我

由于我的模型变得巨大(大约有17.500个补丁和2000只海龟,它们必须将每个补丁的观点与所有其他海龟进行比较),我想知道是否有一个智能的解决方案来合并补丁以减少补丁ID的数量。海龟的数量已经减少到10只。然而,处理过程可能还需要很长时间

对于所有补丁,我创建了一个字典,其中存储了一个ID作为键,以及一个基于土地利用和距离的意见值。我有四个不同的土地利用类别,值为1-4。我想的是询问邻居是否有同样的土地使用价值。如果这是真的,所有的补丁应该得到相同的ID和相同的意见在字典中作为补丁在中间。这是我尝试过的东西,但不起作用。此外,我认为我还需要处理一个陷阱,即已经合并的补丁会被反复计算

 let dummy one-of patches
 ask dummy with [value = 1] [
 set value myself
 ask neighbors4 [
   if value = 1
   [set id [id] of dummy]]] 
如果你有任何建议,我可以如何处理一个体面的方式,请让我知道

谢谢,
Jan

您是否也在尝试合并类似邻居的较大群体,或仅合并一个由5人组成的“+”形群体的具体案例?我无法在没有明确规则的情况下起草代码,但我认为您可能希望使用
补丁集
原语来创建组并为所有成员分配相同的值。您可以通过在检查是否应该合并部分时排除已经具有赋值的部分来避免已合并的问题。您看过模型库的“代码示例”部分中的补丁群集示例吗?